Html布局左右宽度固定中间自适应解决方案
2018-12-03 14:13:22
来源:
互联网
文章主要介绍了详解左右宽度固定中间自适应html布局解决方案的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
a.使用浮动布局
html结构如下
<divclass="box"><divclass="left">left</div><divclass="right">right</div><divclass="center">center</div></div>//此处注意要先渲染左、右浮动的元素才到中间的元素。元素浮动后剩余兄弟块级元素会占满父元素的宽度<style>.box{height:200px;}.left{float:left;width:300px;}.right{float:right;width:300px;}</style>
b.使用固定定位
html结构如下
<divclass="box"><divclass="left">left</div><divclass="right">right</div><divclass="center">center</div></div>//和浮动布局同理,先渲染左右元素,使其定位在父元素的左右两端,剩余的中间元素占满父元素剩余宽度。<style>.box{position: relative;}.left{position: absolute;width: 100px;left: 0;}.right{width:100px;position: absolute;right: 0;}.center{margin: 0 100px;background: red;}</style>
c.表格布局
将父元素display:table,子元素display:table-cell,会将它变为行内块。
这种布局方式的优点是兼容性好。
<divclass="box"><divclass="left">left</div><divclass="center">center</div><divclass="right">right</div></div><style>.box{display: table;width: 100%;}.left{display: table-cell;width: 100px;left: 0;}.right{width:100px;display: table-cell;}.center{width: 100%;background: red;}</style>
d.弹性布局
父元素display:flex子元素会全部并列在一排。
子元素中flex:n的宽度会将父元素的宽度/n
如flex:1,宽度就等于父元素高度。
弹性布局的缺点是兼容性不高,目前IE浏览器无法使用弹性布局
<divclass="box"><divclass="left">left</div><divclass="center">center</div><divclass="right">right</div></div><style>.box{display: flex;width: 100%;}.left{width: 100px;left: 0;}.right{width:100px;}.center{flex:1;}</style>
e.网格布局
父元素display:grid;
grid-templatecolumns:100px auto 100px;
依次为第一个子元素宽100px 第二个自适应 第三个100px;
网格布局的优点是极为简便,直接通过父元素样式决定,缺点是兼容性不高。
<divclass="box"><divclass="left">left</div><divclass="center">center</div><divclass="right">right</div></div><style>.box{display: grid;grid-template-columns: 100px auto 100px;width: 100%;}</style>
以上就是本文Html布局左右宽度固定中间自适应解决方案的全部内容,希望对大家的学习有所帮助。