理想效果是
除了第一行分隔栏外其余都应用如下样式
但现在的效果是
所有的分隔栏都被应用了如下的样式
难道是
- :not(:first-child) 不支持这种写法? 但是如果不支持为什么样式生效了
/**
当右侧card-widget
内含有多个分隔栏时
除第一个外 均淡化其边框颜色
*/
.card-widget > .ui.divider:not(.vertical):not(.horizontal):not(:first-child) {
border-top: 1px solid rgba(34, 36, 38, .05);
border-bottom: 1px solid rgba(255, 255, 255, .05);
}
<div class="ui segment card-widget">
<h5>父话题</h5>
<div class="ui divider"></div>
<div class="ui labels">
<a class="ui label basic">开发语言</a>
</div>
<h5>子话题</h5>
<div class="ui divider"></div>
<div class="ui labels">
<a class="ui label basic">Java</a>
<a class="ui label basic">Ruby</a>
<a class="ui label basic">Switch3</a>
<a class="ui label basic">CSS3</a>
<a class="ui label basic">Python</a>
<a class="ui label basic">Ruby</a>
</div>
</div>
这里是一个简单的demo
https://jsfiddle.net/5jud07ey/
解决了
将
:not(:first-child)
替换成
:not(:first-of-type)
:first-child 匹配的是某父元素的第一个子元素,可以说是结构上的第一个子元素。
:first-of-type 匹配的是某父元素下相同类型子元素中的第一个,比如 p:first-of-type,就是指所有类型为p的子元素中的第一个。这里不再限制是第一个子元素了,只要是该类型元素的第一个就行了。
你需要 first-of-type