【发布时间】:2015-01-27 21:54:23
【问题描述】:
请运行 sn-p 看看我的问题是什么。我有一系列向左浮动的 div。在定义数量的 div 之后,我希望它们换行,在我的示例中,每 5 个 div 应该清除浮动,因此它从新行开始。到目前为止没有问题,当我有一些具有某个类的 div 时,这里是 class="hidden" 我不想在我的规则中计算,这就是我在这里排除它的原因:
.box:not([class*="hidden"]):nth-of-type(4n+1) {
clear: left;
}
正如您在示例 sn-p 中看到的那样,第三个(隐藏的)div 仍被计入第 n 个类型规则,这会导致在 div 编号之后出现不需要的“换行符”。 4.
有人知道我在选择器中做错了什么吗?
.box {
background-color: #a00;
border: 1px solid #000;
color: #fff;
float: left;
height: 64px;
margin: 10px;
text-align: center;
width: 64px;
}
.hidden {
display: none;
}
.box:not([class*="hidden"]):nth-of-type(4n+1) {
clear: left;
}
<div class="box">1</div>
<div class="box">2</div>
<div class="box hidden">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<div class="box">7</div>
<div class="box">8</div>
<div class="box">9</div>
<div class="box">10</div>
<div class="box">11</div>
<div class="box">12</div>
<div class="box">13</div>
【问题讨论】:
-
CSS 选择器无法按照您的想法工作,该选择器不会排除具有第 n 个类型计数的隐藏类的框......只是不要应用清除如果 4n+1 隐藏了类
-
.box:not([class*="hidden"]):nth-of-type(4n+1)此处:not无法正常工作。使用开发工具检查.boxcss 的应用 -
我添加了一个小提琴。你会如何用纯 CSS 解决这个问题?
-
仅使用 CSS OP 是不可能的
-
与问题无关,但否定确实应该说
:not(.hidden)而不是:not([class*="hidden"])。
标签: css css-selectors