避免 span-column 为 :last-child 设置右边距
Avoid span-column to set right-margin for :last-child
给定 HTML :
<div class="parent">
<div class="element"></div>
<div class="other"></div>
</div>
还有这个 Sass :
.parent {
.element {
@include span-columns(2.5 of 8);
}
}
它生成 CSS :
.parent .element {
float: left;
display: block;
margin-right: 3.22581%;
width: 29.03226%;
}
.parent .element:last-child {
margin-right: 0;
}
带有 :last-child
的部分困扰着我,因为它覆盖了我想保留的带有 right-margin
的第一条规则。如何防止 Neat 添加 :last-child
规则?或者我应该采取什么解决方法来设置我想要的右边距?
我觉得你在这里没问题。 Neat 的 span-columns()
mixin 的工作原理是将一个元素建立为一列,其中包含您在上面复制的 classes,包括列之间的装订线的右边距。然后它使用 :last-child
伪 class 删除最后一列的装订线边距,这样你就没有不必要的 space 了。
考虑到这一点,您示例中的 .element
div 不是 :last-child
,因此特定 div 的右边距将保持不变。我将其放入 JSBin 中以向您展示:http://jsbin.com/wawopef/edit?html,css,output。我也制作了 .other
专栏,因为很明显您打算将它作为一个专栏。 .element
div还有余量,那么
如果你真的想覆盖规则,你可以通过重写 mixin 来实现,但是 A) 这可能不是你想要做的,B) 这是使用别人的网格框架的一部分。如果我们按照他们的文档进行操作,它应该可以正常工作。或者框架不好,幸好Bourbon和Neat没有!
给定 HTML :
<div class="parent">
<div class="element"></div>
<div class="other"></div>
</div>
还有这个 Sass :
.parent {
.element {
@include span-columns(2.5 of 8);
}
}
它生成 CSS :
.parent .element {
float: left;
display: block;
margin-right: 3.22581%;
width: 29.03226%;
}
.parent .element:last-child {
margin-right: 0;
}
带有 :last-child
的部分困扰着我,因为它覆盖了我想保留的带有 right-margin
的第一条规则。如何防止 Neat 添加 :last-child
规则?或者我应该采取什么解决方法来设置我想要的右边距?
我觉得你在这里没问题。 Neat 的 span-columns()
mixin 的工作原理是将一个元素建立为一列,其中包含您在上面复制的 classes,包括列之间的装订线的右边距。然后它使用 :last-child
伪 class 删除最后一列的装订线边距,这样你就没有不必要的 space 了。
考虑到这一点,您示例中的 .element
div 不是 :last-child
,因此特定 div 的右边距将保持不变。我将其放入 JSBin 中以向您展示:http://jsbin.com/wawopef/edit?html,css,output。我也制作了 .other
专栏,因为很明显您打算将它作为一个专栏。 .element
div还有余量,那么
如果你真的想覆盖规则,你可以通过重写 mixin 来实现,但是 A) 这可能不是你想要做的,B) 这是使用别人的网格框架的一部分。如果我们按照他们的文档进行操作,它应该可以正常工作。或者框架不好,幸好Bourbon和Neat没有!