我有3列。 left
,middle
和right
。
left
和middle
为固定宽度,right
应填充剩余空间。
我该如何做到这一点?
当前HTML
<div id="menu">
<div id="left">
</div>
<div id="middle">
</div>
<div id="right">
</div>
</div>
LESS
#menu {
width: 100%;
#left {
width: 20%;
float: left;
}
#middle {
width: 300px;
float: left;
}
#right {
overflow-x: hidden;
float: right;
}
}
答案 0 :(得分:0)
我认为
#right{
width:auto;
float:right;
overflow-x: hidden;
}
必须工作。
答案 1 :(得分:0)
#menu {
width: 100%;
#left {
width: 20%;
float: left;
}
#middle {
width: 300px;
float: left;
}
#right {
width: -webkit-calc(100% - 20% - 300px);
width: -moz-calc(100% - 20% - 300px);
width: -o-calc(100% - 20% - 300px);
width: calc(100% - 20% - 300px);
float: right;
}
}
您必须知道calc仍然是一种实验性技术,如果您正在寻找浏览器兼容性,我建议您使用javascript。
答案 2 :(得分:0)
以下a fiddle全部正常运作。
这是“小屏幕优先”所以 - 如果你没有...那么你可以删除@media规则。
看起来你真正需要的是宽度自动 - 并确保它没有浮动。
<aside class="container left"><h2>Left</h2></aside>
<section class="container main-content"><h2>Main content</h2></section>
<aside class="container right">
<h2>Right</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et beatae quam quibusdam dolor dolorum vero harum commodi vel quidem quasi sed dolores iusto is</p>
</aside>
* {
box-sizing: border-box;
}
.container {
width: 100%;
float: left;
}
@media (min-width: 800px) {
.left {
width: 20%;
}
.main-content {
width: 400px;
}
.right {
width: auto;
float: none;
}
}
答案 3 :(得分:0)
#middle {
width: 300px;
float: left;
position: relative; /* Show above #right */
}
#right {
width: 80%;
margin-left: -300px; /* equal to width of #middle in px */
padding-left: 300px; /* equal to width of #middle in px */
-moz-box-sizing: border-box;
box-sizing: border-box;
overflow-x: hidden;
float: right;
}