如果标记中 div 的顺序必须如下所示,知道如何使用纯 CSS 实现下图中所示的布局吗?
注 - 每个面板的高度未知;包装器 div 可以添加到标记中
<body>
<div id="content"></div>
<div id="nav"></div>
<div id="search-results"></div>
</body>
此技术取自问题 Make a div display under another using CSS in a fully fluid layout。
它使用 CSS 表格展示,使用 display: table family 的属性来重新排列 dom 元素的展示顺序。
正如上面的问题所说:
这适用于所有现代浏览器,如果你小心的话,还有 IE8。它在 IE6/7 中不起作用。
HTML
<div id="wrapper">
<div id="content-wrapper">
<div id="content">content</div>
</div>
<div id="nav-search-block">
<div id="nav-wrapper">
<div id="nav">nav</div>
</div>
<div id="search-results-wrapper">
<div id="search-results">search-results</div>
</div>
</div>
</div>
CSS
#wrapper {
display: table;
width: 100%;
}
#nav-wrapper,
#search-results-wrapper {
float: left;
width: 50%;
}
#nav,
#search-results {
color: #ffffff;
background: #6699ff;
padding: 10px;
margin: 10px;
}
#nav-search-block {
display: table-row-group;
}
#content-wrapper {
display: table-footer-group;
}
#content {
color: #ffffff;
background: #cc0000;
padding: 10px;
margin: 10px;
}
现在您可以在 javascript 中执行此操作
像这样
Javascript
document.getElementById('one').innerHTML=document.getElementById('content').innerHTML;
CSS
#content{
display:none;
}
#one{
background:red;
padding:10px;
clear:both;
}
#nav{
background:green;
float:left;
width:35%;
}
#search-results{
float:right;
width:65%;
background:yellow;
}
HTML
<body>
<div id="content">Content I m first in html </div>
<div id="nav">navi</div>
<div id="search-results">Search-Results</div>
<div id="one"></div>
</body>