【发布时间】:2014-04-29 21:39:11
【问题描述】:
Bourbon Neat 允许您使用 span-column() mixin 和 omega() mixin 来创建类似于基础 5 的块网格的 automatic columns。但是,在跨媒体查询共享样式时,这些似乎都失败了。看看下面的例子:
.blocks {
@include media($iphone) {
@include span-column(4);
@include omega(3n);
}
@include media($ipad) {
@include span-column(3);
@include omega(4n);
}
}
它使用第 n 个子位置来删除行中最后一项的边距,但是当媒体查询发生时,如果您更改 omega,它不会覆盖其他 CSS。所以第一个媒体查询将按预期工作。然后,当$ipad 查询被触发时,nth-child(3n) 仍保留在 CSS 中,因此会破坏 $ipad 查询。有没有办法解决这个问题?
编译后的 CSS:
.block-grid > li {
float: left;
display: block;
margin-right: 2.68967%;
width: 48.65516%;
}
.block-grid > li:last-child { margin-right: 0; }
.block-grid > li:nth-child(2n) { margin-right: 0; }
.block-grid > li:nth-child(2n+1) { clear: left; }
@media screen and (min-width: 1024px) {
.block-grid > li {
float: left;
display: block;
margin-right: 2.68967%;
width: 31.54022%;
}
.block-grid > li:last-child { margin-right: 0; }
.block-grid > li:nth-child(3n) { margin-right: 0; }
.block-grid > li:nth-child(3n+1) { clear: left; }
}
【问题讨论】:
-
编译后的 CSS 是什么样子的?
-
已添加,显然我在输出中看到了问题,我只是想知道 SASS 中是否有解决方法。
-
欧米茄混合生成的只是清晰的?还是margin-right?