官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/
!> 在组件的样式文件中也就是WXSS文件,不能使用 ID 选择器,属性选择器,标签选择器。
反例:
我这里使用了标签选择器,效果如下:
当我查看控制台发现,给出了一段警告,内容是:[pages/index/index] Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors.(./components/c-demo/c-demo.wxss:1:1)
意思就是说,不要在组件当中去使用标签选择器,当然你现在看着可能是有效果的,在以后的某个时段当中,可能会出现失效,所以,这里是不正确的使用。
正例:
记住一点就行,在组件中使用类选择器,来设置样式即可。
我这里就不写了,偷个懒,我相信大家,这点应该都知道。
好,这里介绍了第一个注意点事项,再来看第二个。
!> 默认情况下组件中的样式不会影响到页面中的样式
这个要怎么理解呢,就是说,我们在组件当中定义了一个叫 .title 的样式,我们页面文件的WXML中使用到了一个叫做 .title 的类名,这里是引用不到我们组件中定义的 .title 的样式信息的,这里就不提供代码和图片进行呈现。
!> 默认情况下,页面中的样式也不会影响到组件中的样式
!> 也就是说,默认情况下页面和组件中的样式是相互隔离的
?> 如果不想隔离,可以在组件的 .js 文件中,添加 options,在 options 中通过 styleIsolation 来指定隔离模式
styleIsolation
- apply-shared:表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面;(页面的样式会影响到我们自定义的组件,也就是说不进行隔离)
我在index页面文件目录中的WXSS中定义了一个 .title 的样式,在我没有加 styleIsolation 配置项的时候,我们的index页面并不会作用到我们的c-demo组件当中,添加了之后我们的样式才会进行生效。
- shared:表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了
apply-shared
或shared
的自定义组件。(这个选项在插件中不可用。)(简单理解就是,组件的会影响到页面的,页面的会影响到组件的,相互互通)