利用BFC实现左右两列自适应布局
来源:互联网 发布:arduino matlab编程 编辑:程序博客网 时间:2024/06/05 02:54
左右两列自适应布局是前端经常会遇到的项目需求。通常的做法无外乎左列浮动定宽,然后右列或浮动,或设置外边距,或绝对定位等等。但是现在我们要用overflow来实现,想必很多人都会耳目一新。
overflow属性
overflow属性最常见的一个使用场景就是规定当内容溢出元素框时发生的事情。可能的值如下:
visible 默认值。元素内容不会被裁剪,元素框之外的内容仍然会呈现。
hidden 元素内容会被裁剪,并且元素 框之外的内容是不可见的。
scroll 元素内容会被裁剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 浏览器自动处理元素内容的溢出,如果元素内容被裁剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。
除此之外,也会经常看到通过overflow属性实现的一些效果,比如清除浮动,以及上面提到的两栏布局的实现。这些效果的实现,可能跟overflow属性的本意相差甚远,就像两种不相关的事务被硬生生的牵扯到了一起。其实不然,CSS Spec规范文档中还明确记录着overflow属性的另外一个重要作用。
overflow属性跟布局的关系
The CSS2.1 spec mandates that overflow other than visible establish a
new “block formatting context”.
CSS2.1规范中已经明确提出,设置overflow属性(非visible)能触发块级格式化上下文(Block Formatting Conext, BFC)。
BFC是个很大的话题,此处不展开,这里给出一个简化不精确的解释,BFC概念的引入,一定程度是为了特殊情况下布局计算的方便,元素触发BFC之后,其作用就相当于一个根容器,其内部的子元素会跟外界完全隔离开,子元素布局以及尺寸相关的计算都会以该元素容器为基础。
详细代码
做好了准备工作,我们就看看代码。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> .main{ width: 100%; height: 100%; margin: 0; padding: 0; } .left{ float: left; width: 200px; height: 100%; background: blue; margin-right: 20px; } .right{ height: 100%; overflow: hidden; background: red; word-wrap:break-word } </style></head><body> <div class="main"> <div class="left">1111111</div> <div class="right">22222222222222222222222222bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈55555555555 </div> </div></body></html>
实现效果:
这样就实现了简单的左右两列自适应布局,是不是感叹css真的很奇妙!
小tips:
内容区要加入word-wrap:break-word,这样数字和英文才会自动换行哟!
- 利用BFC实现左右两列自适应布局
- 利用Overflow:Hidden实现自适应左右两列布局/填充父级元素剩余宽度
- Flex布局实现圣杯布局,左右两列固定、中间列自适应的三列式布局
- BFC两栏自适应布局
- 实现一个自适应布局 两列布局
- 两列自适应布局
- 两列自适应布局
- 左右定宽,中间自适应,实现三列布局
- 利用绝对定位实现两列右边固定宽度左边自适应布局
- 两列布局宽度自适应
- CSS左右两列自适应高
- CSS左右两列自适应高
- DIV+CSS左右两列自适应高度
- 3列布局左右自适应中间固定
- 三列布局-左右固定,中间自适应
- DIV布局之三行三列左右两栏固定中间自适应
- BFC宽度自适应布局
- 两列或三列自适应布局
- 1093: 验证哥德巴赫猜想(函数专题)
- WebService学习笔记——AXIS2基础
- 小白成长之路
- zookeeper开源客户端curator
- ext treepanel重复加载的问题
- 利用BFC实现左右两列自适应布局
- 有序矩阵查找 -- 算法小结
- JAVA 方法重载和重写区别
- WordPress+React+dva 打造单页面博客
- 基于 WiFi 探针的客流统计与考勤
- 1094: 统计元音(函数专题)
- Boolan C++ 笔记 十
- grafana docker 安装使用
- 欢迎使用CSDN-markdown编辑器