我正在查看Skeleton框架(getskeleton.com),但我想要一个流畅的网格系统。我也对这些网格的内部工作感兴趣,所以我决定自己动手。
但是,我遇到two.columns
百分比的问题。所有其他列宽都可以正常工作。首先,这里发生了什么:
第二排显然有问题,我真的无法弄清楚它是什么。
此布局的代码如下:
$max-width: 600px;
.container {
@include container($max-width);
.column, .columns {
@include columns($max-width);
}
.one.column, .one.columns { width: perc(30px, $max-width); }
.two.columns { width: perc(80px, $max-width); }
.three.columns { width: perc(130px, $max-width); }
.four.columns { width: perc(180px, $max-width); }
.five.columns { width: perc(230px, $max-width); }
.six.columns { width: perc(280px, $max-width); }
.seven.columns { width: perc(330px, $max-width); }
.eight.columns { width: perc(380px, $max-width); }
.nine.columns { width: perc(430px, $max-width); }
.ten.columns { width: perc(480px, $max-width); }
.eleven.columns { width: perc(530px, $max-width); }
.twelve.columns { width: perc(580px, $max-width); }
以下是我使用的mixins /函数,不确定这是否重要:
@function perc($width, $container-width) {
@return percentage($width / $container-width);
}
@mixin container($width) {
position: relative;
width: $width;
margin: 0 auto;
padding: 0;
}
@mixin columns($max-width) {
float: left;
display: inline;
margin: 0 10px;
}
HTML文件中的代码只是:
<% 6.times do %>
<div class="two columns box"></div>
<% end %>
我想如果计算百分比有问题,所有行都会以这种或那种方式搞乱。然而,它只是第二个..如果有人看到这里发生了什么,请赐教我?
我将已处理的CSS放在pastebin上:http://pastebin.com/bxq1a5Ge
提前致谢。
答案 0 :(得分:2)
我认为您还需要将利润率转换为百分比。每当div超过1列时,20px的装订线宽度将转换为百分比作为块宽度的一部分。这在某些时候最终会出错。
另一个选择是它是一个舍入问题,因为浏览器无法将百分比值完全转换为像素值。
我已经设置了一个基本jsfiddle of the issue,因为jsfiddle支持SCSS。该示例将选项2显示为一个很好的候选者,但我建议将所有宽度更改为百分比。
答案 1 :(得分:0)
显然
perc(80px, 600px)
提供13.333%
。
当我使用width: 13.3333333%
时,问题得到解决。