Saltar al contenido

CSS no funciona en mi componente angular

Solución:

Creo que el problema que tiene es porque está declarando el styleUrls en el componente principal y, debido a la encapsulación, no están disponibles en el componente secundario. Tienes que moverlo al componente de calificación.

En caso de que desee mantenerlo en el nivel que tiene actualmente, debe hacer que la encapsulación de la vista no sea ninguna en el componente de calificación.

selector: 'rating',
encapsulation: ViewEncapsulation.None

Creo que también está haciendo un mal uso de la propiedad css del contenido. Necesita usar el ::before o ::after pseudo elementos

.star.star-full-icon::after{
    content:'X';
}
.star.star-empty-icon::after{
    content:'O';
}

actualizar

::slotted ahora es compatible con todos los navegadores nuevos y se puede utilizar con `ViewEncapsulation.ShadowDom

https://developer.mozilla.org/en-US/docs/Web/CSS/::slotted

original

Necesita agregar el CSS (['./app.component.css']) para RatingComponent, de lo contrario, la encapsulación de estilo evitará que se aplique CSS.

Alternativamente, puede usar ::ng-deep

::ng-deep .star.star-full-icon{
    content:'X';
}
::ng-deep .star.star-empty-icon{
    content:'O';
}

o ViewEncapsulation.None sobre el RatingComponent

pero sugiero que se quede con la primera opción.

Véase también https://blog.ilsttram.io/angular/2015/06/29/shadow

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *