这个问题非常自我解释。所有这些div元素都是100%的高度我需要左边的div来弯曲,但是没有设置为溢出:隐藏所以我可以使它的子元素也具有弹性。在左侧div中是一个Image滑块,它是响应式的,我正在尝试使其响应。请有人帮我解决这个问题,请提前致谢。
<div id="parent">
<div id="left">
Liquid layout
</div>
<div id="right">
Fixed width 450px
</div>
</div>
答案 0 :(得分:3)
如果div元素窗口高度的100%,那么您的HTML + CSS标记将缩减为:
<div id="left">Liquid layout</div>
<div id="right">Fixed width 450px</div>
html { height: 100%; }
body { height: 100%; margin: 0; padding: 0; }
#left { position: absolute; top: 0; bottom: 0; left: 0; right: 450px; }
#right { position: absolute; top: 0; bottom: 0; right: 0; width: 450px; }
如果div元素是相等高度那么这里是一个“旧学校”方法,(i)保留源顺序(ii)使用浮动(iii)生成相等高度的虚拟列(iv)需要一个清除div
<div id="parent">
<div id="left">Liquid layout</div>
<div id="right">Fixed width 450px</div>
<div class="clear"></div>
</div>
#parent { border-right: 450px solid orange /* right bg */; background-color: yellow /* left bg */; }
#left { float: left; width: 100%; }
#right { float: right; width: 450px; margin-right: -450px; }
.clear { clear: both; }
答案 1 :(得分:1)
将table-cell
用于您的目的:)
在Hashem Qolami回答之后编辑,因为您已在css3
类别中标记了问题,让我清楚{IE}及以后版本display:table
支持....如果你不想使用clear
divs,那就很有用了。
html, body {
width:100%;
height:100%;
margin:0;
padding:0;
}
#parent {
display:table;
width:100%;
height:100%;
word-break:break-all;
}
#left {
display:table-cell;
border:1px solid red;
}
#right {
width:450px;
display:table-cell;
border:1px solid green;
}
答案 2 :(得分:1)
您可以通过将float
属性设置为一个div
并将margin
设置为另一个来实现此布局:
<强> HTML:强>
<div id="parent">
<div id="right">
Fixed width 450px
</div>
<div id="left">
Liquid layout
</div>
</div>
<强> CSS:强>
#right {
float: right;
width: 450px;
}
#left {
margin-right: 450px;
}
<强> JSFiddle Demo 强>
无需使用table
显示的元素。事实上,我真的建议避免将其用于布局目的。
注意:使用table
显示类型,可能会在呈现页面时更改Web浏览器的行为(浏览器可能会将整个页面视为表格)。
根据 W3C spec :
table,inline-table,table-row-group,table-column, table-column-group,table-header-group,table-footer-group,table-row, table-cell和table-caption
这些值会导致元素表现 像table 元素一样(受本章描述的限制 在表格上。)
答案 3 :(得分:1)
如果你想采用flex
方法,那就去吧......
<强> HTML 强>
<div class="wrap">
<div class="fluid"></div>
<div class="fixed"></div>
</div>
<强> CSS 强>
html, body, .wrap, .wrap > div {
height: 100%;
}
.wrap {
display: flex;
display: -webkit-flex;
}
.fluid {
width: 100%;
background: #eee;
flex: 1;
}
.fixed {
background: #aaa;
width: 200px;
}
答案 4 :(得分:0)
html, body {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
}
#left, #right {
height: 100%;
float: left;
}
#parent{
width: 100%;
height: 100%;
}
#left {
width: calc(100% - 450px);;
background-color: teal;
}
#right {
width: 450px;
background-color: olive;
}