自定义组件对应的样式文件,只对该组件内的节点生效。编写组件样式时,需要注意以下几点:
- 组件和引用组件的页面不能使用 id 选择器(
#a
)、属性选择器([a]
)和标签名选择器,请改用 class 选择器。 - 组件和引用组件的页面中使用后代选择器(
.a .b
)在一些极端情况下会有非预期的表现,如遇,请避免使用。 - 子元素选择器(
.a > .b
)只能用于View
组件与其子节点之间,用于其他组件可能导致非预期的情况。 - 继承样式,如
font
、color
,会从组件外(父组件)继承到组件内。但是引用组件时在组件节点上书写的className
无效。 (具体解决方案请参见下面的外部和全局样式介绍。) - 除继承样式外,
app.scss
中的样式、组件所在页面的样式,均对自定义组件无效。
除此以外,组件可以指定它所在节点的默认样式,使用#a { } /* 在组件中不能使用 */
[a] { } /* 在组件中不能使用 */
button { } /* 在组件中不能使用 */
.a > .b { } /* 除非 .a 是 view 组件节点,否则不一定会生效 */
:host
选择器(需要包含基础库 1.7.2 或更高版本的开发者工具支持)。/* 该自定义组件的默认样式 */
:host {
color: yellow;
}