在使用 UI 框架进行业务开发时,UI 框架一般都是内置一套 CSS 样式,当我们需要对特定的组件修改样式时,一般会覆盖框架内置的 CSS 样式,但是有时候我们想保留一些框架内置的 CSS,例如:在按钮悬浮的时候保留框架内置的悬浮态,但是修改正常状态下的颜色。此时我们在设置元素的 color
属性是会同时把框架内置的 :hover
伪类下的颜色也覆盖掉,为了避免这种情况,可以使用 :is()
选择器配合 :not()
选择器实现:
.father :is(.son:not(:hover)) {
// 样式
}
:is()
伪类选择器没有权重,所以在上面的例子中,权重 = .father
类,然后在 is()
中选中子元素,同时子元素必须不是处于鼠标悬浮状态,此样式才有效。
使用这种方式可以巧妙的解决既想保留框架内置的一些样式,同时自己设置一些自定义的样式。
PREVIOUSThree.js 之纹理
NEXTArray.sort() 排序