继承多个nth-child时重置nth-child“清除:两者”

时间:2018-12-28 04:16:46

标签: css sass css-selectors

我正在使用CSS(特别是SCSS)将样式应用于不同媒体尺寸上的同一元素: A B C

我在 A 中使用以下内容:

&:nth-of-type(2n+1) {
    clear: both;
}

而且,我将以下内容用于 B

&:nth-of-type(3n+1) {
    clear: both;
}

而且,我在 C 中使用以下内容:

&:nth-of-type(4n+1) {
    clear: both;
}

样式从 A 继承到 B ,从 B 继承到 C 。因此,在不应该将“ 2n + 1”应用于 B C 的情况下,将对“ strongn” C施加“ 3n + 1”的情况什么时候不应该。

我通过执行以下操作来重置“ 2n + 1”的 B C 属性:

&:nth-of-type(2n+1) {
    clear: none;
}

然后我通过执行以下操作将 C 属性重置为“ 3n + 1”:

&:nth-of-type(3n+1) {
    clear: none;
}

这不起作用,因为对于 B C ,“ 2n + 1”的结果为true,对于,“ 3n + 1”的结果为true C 。因此,我在“ 2n + 1”和“ 3n + 1”处应用了“清除:无”。

我被困住了,选择器设置后如何重置或禁用它(第n个类型)?还是在选择器中设置“清除”属性后如何删除?

谢谢!

2 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是,为媒体查询指定最小值和最大值。从A到B,从B到C,从C到更高。

答案 1 :(得分:0)

我设法通过对 B 执行以下操作来解决此问题:

Service

并对 C 执行以下操作:

&:nth-of-type(2n+1),
&:nth-of-type(3n+1) {
    clear: none; // Clear previous "A" setting
}
&:nth-of-type(4n+1) {
    clear: both;
}

这将重置先前选择器上的“清除”,然后将新的值应用于“清除”。

我希望这可以帮助像我一样陷入困境的其他人。