I'm working on a LoginComponent
in Angular 2 that should "restyle" the html
and body
tags, so I can put in a background image specific for the login page.
But just adding a style for the html, body
in my login.css
doesn't seem to work.
Is there a way to override the style on the html, body
from a component? Or any element for that matter.
I've tried things like:
:host(.btn) { ... } :host(.btn:host) { ... } .btn:host { ... }
to style an element from outside the Login
component. But nothing seems to work.
To declare style rules for the body of a webpage, you will need to create a CSS rule for the body tag selector. These rules will then be applied to all elements that are placed inside the opening and closing <html> tags that you added to the index.
There are several ways to add styles to a component: By setting styles or styleUrls metadata. Inline in the template HTML. With CSS imports.
If you want to style the projected content within <ng-content>, you can do so using :host and ::ng-deep to apply styling to all nested elements within the <contact> component.
You need to change the way your component serves css using ViewEncapsulation. By default it's set to Emulated
and angular will
add an attribute containing surrogate id and pre-process the style rules
To change this behavior import ViewEncapsulation from 'angular2/core'
and use it in component's metadata:
@Component({ ... encapsulation: ViewEncapsulation.None, ... })
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With