我没有对此进行测试,但它可能会在没有任何奇怪库的情况下在 CSS3 中发挥作用。
首先创建一个像这样的html布局:
<div id="wrapper">
<header>Website header</header>
<section>
<header>Page header</header>
<div class="main">
</div>
</section>
<section>
<header>Page header</header>
<div class="main">
</div>
</section>
<section>
<header>Page header</header>
<div class="main">
</div>
</section>
</div>
然后使用 CSS table 和 table-cell 创建列效果。给表格的宽度为 100*children 很重要
html, body { height: 100%; }
#wrapper { display: table; width: 400%; margin-top: 100px; }
#wrapper > header { position: fixed; top: 0px; height: 100px; width: 100%; }
#wrapper > section { display: table-cell; height: 100%; width: 25%; }
一个很好的副作用是,当屏幕旋转时,页面只会旋转和缩放(如果设置)
编辑:允许每个部分的边距
<div id="wrapper">
<header>Website header</header>
<section>
<div class="page_wrapper">
<div class="page_bubble">
<header>Page header</header>
<div class="main">
</div>
</div>
</div>
</section>
<section>
<div class="page_wrapper">
<div class="page_bubble">
<header>Page header</header>
<div class="main">
</div>
</div>
</div>
</section>
<section>
<div class="page_wrapper">
<div class="page_bubble">
<header>Page header</header>
<div class="main">
</div>
</div>
</div>
</section>
</div>
每个 html 部分现在都有一个包装器和一个“气泡”。将包装器设置为 position: relative 并将容器设置为 position: absolute ,如下所示:
.page_wrapper { position: relative; width: 100%; height: 100%; }
.page_bubble { position: absolute; top: 0px; right: 25px; bottom: 0px; left: 25px; }
在一些具有高度和宽度的包装器中定义绝对位置的所有边时。它以某种方式表现为填充相对包装器的拉伸容器(在这种情况下)左右两侧的边距为 25px,当内部内容超过高度或宽度时也允许自动溢出:) 有关这个小 CSS 'hack' 的更多信息:
超拉伸元素