我尝试消除亚像素舍入误差已经有一段时间了,但到目前为止,我一次又一次地惨败。我试图在 Sass 和 Susy 的帮助下完成这项工作。我在上一次尝试中使用的 mixin 是从 Github 上的 Susy 问题跟踪器获得的(我使用了空间、列以及按那里建议的 margin-left/right 属性):
@mixin isolate($location, $context: $columns, $dir: 'ltr') {
@if $dir == 'ltr' {
margin-right: -100%;
margin-left: space($location, $context);
}
@else if $dir == 'rtl' {
margin-left: -100%;
margin-right: space($location, $context);
}
}
我的 Scss 如下所示:
.imggrid{
@include with-grid-settings($gutter: 0.1%){
$y:2;
li{
@include span-columns(2,12);
@for $x from 1 through 30
{
&:nth-child(#{$x}){
@include isolate($y,12);
$y: $y + 2;
@if $y > 12{
$y: 2;
}
}
}
@include nth-omega(6n);
}
}
}
首先,我为图像网格创建了一个自定义装订线。然后我定义了一个变量 y 以在两个步骤中进行迭代,以便能够调用隔离 mixin(isolate(2,12) 隔离 (4,12) 等)。对于大于 12 的值,该值最终在 for 循环中重置为 2。然后我为每 li 遍历 30 张图像跨越一列。每次调用迭代的isolate mixin。在 for 循环之后,我附加了 @include nth-omega(6n); 在每个第六个元素之后获得一个新行。
但不知何故,它根本不起作用。前四行缺少第一个图像,最后一行缺少前五个元素。任何想法和建议表示赞赏。谢谢拉尔夫