我在整个角度应用程序中都使用了引发对话框。我可以使用ng-deep更改每个特定的对话框样式。例如,我有联系我们页面,我拥有这些文件:
contact.html
contact.component.ts
contact.css
所以我将下面的CSS放在contact.css中,它更改了Contact us对话框标题栏的颜色。
:host ::ng-deep .ui-dialog .ui-dialog-titlebar{
background-color: red
}
我想对我的应用程序中的所有对话框执行此操作,我该怎么做?我在src文件夹中的style.css文件中放置了相同的CSS,但没有用。
因此,默认情况下,角度组件采用Style Encapsulation的非常方便的策略,这样可以使样式不会渗出到其他组件中并引起不想要的效果。
您可以利用ng-deep
,就像您必须允许在其中定义的样式由指定位置的子组件继承一样。
但是对于全局继承的事物,您将需要按照从高到低的顺序对其进行定义,因此,这些样式cascade直至下面的选择器。在不使用SCSS或其他预处理程序的默认角度应用程序中,最简单的方法之一是将它们添加到初始化的第一个文件中,其中包含子组件(例如index.html
或app.component
)以允许组件然后初始化,以在呈现它们时继承它们。
希望这会有所帮助,加油!