我在理解如何使用 Susy Next 生成以下布局时遇到了一些问题。
虽然这对于 strait CSS 来说是相当困难的,但我似乎无法在 Susy 中干净利落地做这件事,或者根本就没有。
这里需要注意的是,我不能在布局中添加任何额外的包装器,它只有四个 DIV 块并且必须这样。另一个需要注意的是,我真的更喜欢使用 Susy Next(我目前使用的是 alpha4)。
真的有点希望我只是没有看到树的树林,因为我只使用了几个星期的 Susy。
源顺序为:
first
second
third
fourth
所需的布局是:
-----------------------------------------
| fourth | first |
| ----------------------------
| | second | third |
-----------------------------------------
更新 1。
更新以添加我当前的 CSS 解决方案,为了完整起见,我已经包含了标记和所有影响页面的 CSS:
<main>
<div class="container">
<div class="region region-first"></div>
<div class="region region-second"></div>
<div class="region region-third"></div>
<div class="region region-fourth"></div>
</div>
</main>
.container {
*zoom: 1;
max-width: 73.75em;
margin-left: auto;
margin-right: auto;
padding: 0 1.25em;
}
.container:after {
content: "";
display: table;
clear: both;
}
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
main .region:first-child {
width: 66.1016949%;
float: right;
}
main .region:nth-child(2) {
clear: right;
float: right;
margin-right: 33.8983051%;
width: 32.2033898%;
}
main .region:nth-child(3) {
margin-right: -66.1016949%;
width: 32.2033898%;
float: right;
}
main .region:last-child {
width: 32.2033898%;
margin: 0;
}
解决方案的一些想法?
我开始研究 Susy Next 的内部结构,并尝试直接调用 span() 函数来获取宽度,万岁这在我只需要 width: 值的情况下有效,但是......
...我正在做margin-right: span(4 + $gutter)
的边距正确值需要与 push 或 pre 将返回的值相同,但我不太了解它们如何工作的所有内部结构,计算时我的“神奇浮动”为 0.75 $gutter 有点不准确,它可能是正确的,但当然改变 set-grid 中的值并且它可能是错误的,所以它充其量只是一个粗略的猜测。
我需要的是一种获得与 pre 将返回的值相同的值的方法,但当然只是值或只是做整个事情的更好的方法:)
.region {
&:first-child {
@include span(8 omega of 12);
}
&:nth-child(2) {
$gutter: $gutters * .75;
margin-right: span(4 + $gutter);
width: span(4);
float: right;
clear: right;
}
&:nth-child(3) {
margin-right: - span(8);
width: span(4);
float: right;
}
&:last-child {
width: span(4);
}
}