The difference is that *ngIf
will remove the element from the DOM, while [hidden]
actually plays with the CSS style by setting display:none
. However, the problem with [hidden]
is that it can be overiden so the div
, as in your case, would be displayed and you would be scratching your head why it doesn’t work.
To sum things up, *ngIf
and [hidden]
are not the same at all. The former removes an element from DOM, while the latter toggles display
CSS property.