有人可以为我分解构成圣杯布局的部分,如此处所示切换div定位吗? http://matthewjamestaylor.com/blog/perfect-3-column.htm
我理解的方式是:
colmask只是在页眉和页脚之间定位内容的包装器
colmid是另一个包装器,我想它可以容纳一些浏览器,如IE7
colleft是真品的包装(不知道为什么这么多包装纸)
col1,col2和col3是真实的,都是左边浮动并设置边距以调整它们在屏幕上的外观
有人可以更好地解释那个设计的禅意是什么吗?我正试图将它应用到现实世界的场景中,但它并没有真正发挥作用。
答案 0 :(得分:4)
在对所有建议感到沮丧之后,我想出了这个布局。它的HTML5 / CSS3兼容并适用于IE8 +和至少FF21 - 我还没有在其他版本和浏览器中测试过。但如果你正在寻找一个流畅的布局 - 这个很好。
<!DOCTYPE html>
<html>
<head>
<title>Canvas</title>
<style type="text/css">
* {padding:0px; margin:0px;}
html, body {width:100%; height:100%;}
#page {width:100%; height:100%;position:relative;}
#page > #header {
position:absolute;
top:0px;
left:0px;
right:0px;
height:64px;
background:#ccc;
}
#page > #body {
position:absolute;
top:64px;
left:0px;
right:0px;
bottom:64px;
}
#page > #body > #left {
position:absolute;
top:0px;
left:0px;
bottom:0px;
width:192px;
background:#bbb;
}
#page > #body > #center {
position:absolute;
top:0px;
left:192px;
right:192px;
bottom:0px;
}
#page > #body > #right {
position:absolute;
top:0px;
right:0px;
bottom:0px;
width:192px;
background:#bbb;
}
#page > #footer {
position:absolute;
bottom:0px;
right:0px;
left:0px;
height:64px;
background:#ccc;
}
</style>
</head>
<body>
<div id="page">
<div id="header"></div>
<div id="body">
<div id="left"></div>
<div id="center"></div>
<div id="right"></div>
</div>
<div id="footer"></div>
</div>
</body>
</html>
答案 1 :(得分:3)
圣杯是一种3柱液体布局,无论有多少内容,三列的长度都相同。列应该在html中为2-3-1顺序(对于SEO)。我们的想法是将内容与背景颜色分开,并将其放入不同的div中。浮动的容器div总是它的浮动内容的高度,所以这里发生的是每个内容div,有一个匹配的相对定位的浮动容器div。这是三个包装。
一步一步,它的工作原理如下:
设置三个嵌套在三个嵌套包装内的列。
<div id="container-right">
<div id="container-middle">
<div id="container-left">
<div id="col1">Column 1</div>
<div id="col2">Column 2</div>
<div id="col3">Column 3</div>
</div>
</div>