<p>我正在创建一个样本网站,其中有三个水平分区。
我希望最左边的分区宽度为25%,中间的分区宽度为50%,右边的分区宽度为25%,以便分区水平填满100%的空间。</p>
<pre class="brush:php;toolbar:false;"><html>
<title>
网站标题
</title>
<div id="the whole thing" style="height:100%; width:100%" >
<div id="leftThing" style="position: relative; width:25%; background-color:blue;">
左侧菜单
</div>
<div id="content" style="position: relative; width:50%; background-color:green;">
随机内容
</div>
<div id="rightThing" style="position: relative; width:25%; background-color:yellow;">
右侧菜单
</div>
</div>
</html></pre>
<p>https://i.stack.imgur.com/NZDJe.jpg</p>
<p>当我执行这段代码时,divs会重叠显示。我希望它们并排显示!</p>
<p>我该怎么做?</p>
我知道这是一个非常老的问题。我在这里发布这个问题的解决方案,使用了FlexBox。下面是解决方案:
#container { height: 100%; width: 100%; display: flex; } #leftThing { width: 25%; background-color: blue; } #content { width: 50%; background-color: green; } #rightThing { width: 25%; background-color: yellow; }<div id="container"> <div id="leftThing"> 左侧菜单 </div> <div id="content"> 随机内容 </div> <div id="rightThing"> 右侧菜单 </div> </div>只需要在容器中添加
display:flex!不需要使用浮动。我建议不要使用浮动来处理这种情况,我更倾向于使用
inline-block。还有一些需要考虑的要点:
<head>和<body>doctype这是一个更好的格式化文档的方式:
<!DOCTYPE html> <html> <head> <title>网站标题</title> <style type="text/css"> * {margin: 0; padding: 0;} #container {height: 100%; width:100%; font-size: 0;} #left, #middle, #right {display: inline-block; *display: inline; zoom: 1; vertical-align: top; font-size: 12px;} #left {width: 25%; background: blue;} #middle {width: 50%; background: green;} #right {width: 25%; background: yellow;} </style> </head> <body> <div id="container"> <div id="left">左侧菜单</div> <div id="middle">随机内容</div> <div id="right">右侧菜单</div> </div> </body> </html>这里还有一个jsFiddle供参考。