首页 > IT职业 > IT职场 > css布局 - 两栏自适应布局的几种实现方法汇总
这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题。很有必要掌握以备不时之需:

整理了几种实现方法,当然,风骚的代码不止这几种能实现,欢迎各位的补充。
* 以下汇总方法不贴图的,都是和上边这个图一模一样的效果。
案例这里使用的结构比较简单,但是核心思想是实现左边固定,右边自适应。
具体你业务中左边长啥样,右边内部又有啥复杂结构,那就要视具体情况了。
但是大的思想结构和模型有了以后,再往里边填充细节就比较好说了。


以下的几种实现基本上复用了上边的这几行css,单独提了出来。不过除了width: 150px;其他都是跟核心思想无关痛痒的样式美化了。
不说废话,看下实现:
基本上我们看到这种并列排排站的布局,可能第一时间就会想到浮动。左浮动排队。
不过这里其实一个浮动就行了:
利用浮动实现文字环绕图片的效果,只需要给左边的图片一个左浮动,右边的文字会自动贴合围绕左边的图片。
然后我们再把右边文字的环绕解决就行了(比如让其形成bfc:规矩成块,打破环绕。或者直接粗暴的margin远离图片)。
具体看下:
html:

css:

不过张大神说,这种左右结构的布局使用浮动,是对浮动的一种滥用(大概是这么个意思,也有可能我对其有曲解)。所以还是尽量避免。
有了第一种浮动流的思想启示,我们可以想到,既然浮动元素不占据父元素流体空间,从而让文案部分通过block自适应,达到了占据父元素的全部空间的效果。
那么另一种,通过绝对定位让左边元素漂浮起来,而不占用父元素流体空间,是不是也就可以实现这种效果了呢?!
html:

css:

.cont-a .txt 里边两条任选其一即可。目的是防止文字在图片下边被遮挡。
这样做,遗憾没法做到随着文字的多少让右侧文案自适应地垂直居中。不知道正在观看的大佬你有什么好的方法吗?
这种写法很特别,我甚至还没研究透他的原理。是从慕课网张大神的课程中学到的。
他的特殊之处在于,这种适用于图片在右边的情况,如下图:

html:

css:

* 适用于可以设置固定宽度的元素在右边的结构
推荐阮一峰老师的flex讲解
html:

对于文案较少的垂直居中布局也有效果,如下图:

轻松弹性,垂直居中不是事儿。
这种古老的布局方式,虽然不怎么用,但是不妨碍他好用,老人家真的是很善心的,垂直居中都自动给你解决了。
特殊结构html:

css:
/*不好意系,可以6到不用css*/
哈哈哈~
[/小声bb]这结构嵌套也太多了吧,[/开心一笑]不过少了很多样式表现。
有了table老人家的启发,让我想起来css中还有一个属性display,他的值是可以仿造table的。
这样结构我们还用正常的结构,样式上伪造下table老人家。
html:

css:

这种也可以实现垂直居中布局。
如果是pc端非自适应的布局,那么固定宽度也未尝不是一个好方法。
html:

css:

没什么特殊性,一般都根据设计稿实现即可。不再列举实现方式。
垂直居中布局-两列都这么设置:
display: inline-block;
vertical-align: middle;
** 最后说明: 这些都是自己照着设计稿现撸的不成熟的实现条件,具体工作中用的方法也就其中两三个。 对于这几种方案的兼容性或者坑点没有完整深入的研究。欢迎遇到过坑的你提个成熟的建议。 另外,css真的相当灵活有趣,每一个方法中css的属性不一定非要是我列举的这几条。 比如absolute和float的txt里边,就有好几种写法可以解决。任选其一就好。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/406/viewspace-2819827/ ,如需转载,请注明出处,否则将追究法律责任。