我对PocketGrid很陌生,因为我今天才发现它。所以,请原谅我,如果我滥用你的电网骨架......
这里有一个替代方法,不需要使用的calc()
,并让您的侧边栏之前标记您的main
的内容,或任何你喜欢的顺序。
这需要一个额外的容器div
包含主块和侧边栏。该容器div
的位置相对于允许2个固定宽度的侧栏的绝对定位。
的HTML:
<div class="block-group">
<div class="header block">
<div class="box">Header</div>
</div>
<div class="middle block block-group">
<div class="main block">
<div class="box">Main<br/>(fluid)</div>
<div class="box">Main<br/>(fluid)</div>
<div class="box">Main<br/>(fluid)</div>
<div class="box">Main<br/>(fluid)</div>
<div class="box">Main<br/>(fluid)</div>
</div>
<div class="left-sidebar block">
<div class="box">Left sidebar<br/>(fixed width)</div>
</div>
<div class="right-sidebar block">
<div class="box">Right sidebar<br/>(fixed width)</div>
</div>
</div>
<div class="footer block">
<div class="box">Footer</div>
</div>
</div>
的CSS:
/* Smartphone version
Nothing to do: blocks are stacked by default. */
.middle {
position: relative;
}
/* Tablet version */
@media (min-width: 600px) {
.left-sidebar { width: 200px; position: absolute; left: 0; top: 0; bottom: 0; }
.right-sidebar { width: 200px; position: absolute; right: 0; top: 0; bottom: 0; }
.main {
overflow: hidden;
float: none;
width: auto;
min-width: 1px;
margin: 0 200px;
}
}
.main .box { background-color: #CFD; }
.left-sidebar .box, .right-sidebar .box { background-color: #CDF; }
同样在jsfiddle。
嗨arnaud,我解决了它与“calc()”,即使不与IE8兼容是一个非常有趣的CSS属性。我会研究你提出的解决方案,也许我会用你的解决方案替换我的解决方案。谢谢。 我开始了一个基于PocketGrid的免费项目,我想和你讨论一下,以便互相交换链接。请,你能联系我吗?我的电子邮件在我的档案中。谢谢!!! –
@LucaDetomi如果你可以接受,你能否将我的答案标记为已接受? 谢谢! – Arnaud