css实现多列并排 多块并排 左右顶头_html/css_WEB
今天在工作中遇到了一个问题:有三个div块,里面放置展示内容,并排,中间有间隙,两边顶头,可以随屏幕大小自适应宽度。 我第一时间想到的是传统的三列布局,但传统的三列布局都是固定宽度加自适应宽度,从网上搜了好久都没有搜到结果。所以自己想办法。 第一种想到的办法:第一种我准备用两边float,中间margin居中的方法。代码如下: .wrap{height:300px;width:95%;margin: 100px auto;} .left{float:left;width:32%;height:100px;background-color: #235255} .right{float:right;width:32%;height:100px;background-color: #374737} .middle{width:32%;margin:0 auto;height:100px;background-color: #563958} html: 结果变成了这样: html: 不过思考一下,这个问题有很多的不方便。首先就是可能会打乱html的加载顺序,还有就是间距是不固定的,并且加了float,可能会有副作用。 第二种想到的办法这种方法将这三个块都设置成display:inline-block,利用inline元素的特性将其居于一行,再将其box-sizing属性设置成border-box。 .g-bd{width: 95%;height: 300px;padding-top:20px;background-color: #bbbbbb;margin: 0 auto;} .in-bl{display: inline-block;} .f{width: 33.333%;height: 100px;background-color: #ab1256;} .s{width: 33.333%;height: 100px;} .t{width: 33.333%;height: 100px;background-color:#192873;} html: 结果与预想的不太相同。预想中他们之间没有空隙,充满容器,不会换行。结果他们义无反顾地换行了,之间有了一个本不该存在的空隙。 .g-bd{width: 95%;height: 300px;padding-top:20px;background-color: #bbbbbb;margin: 0 auto;}.in-bl{display: inline-block;}.f{width: 33.333%;height: 100px;background-color: #ab1256;}.s{width: 33.333%;height: 100px;}.t{width: 33.333%;height: 100px;background-color:#192873;}.in{margin:0 auto;px;width: 95%;background-color:#958727;height: 100%} html: 效果: 大功告成。这样的方法会增加一个嵌套,要设置border-box,也算是有些副作用了。到工作时再根据需要进行取舍吧。 |