盒模型
组成
margin 外边距,可以当做盒子与盒子之间的距离
border 边框,可以当做是盒子的厚度
padding 内边距,可以当做盒子边框于其中容纳物的距离
content 内容, 即盒子中存放文本或图片的区域
标准模型和 ie 模型
box-sizing: content-box 将盒子设置为标准模型(盒子默认为标准模型)
box-sizing: border-box 将盒子设置为 IE 模型(也叫做怪异盒子)
标准模型
width = content
ie 模型
width = content + padding + border
怪异盒模型就不一样了,它把整个盒子看成是一个整体。给整个盒子一个宽高。如果你还给盒子设置了额外的边距和边框。那么中间的 content 蓝色部分就要受到挤压,变小。
bfc
什么是 BFC : 块级格式化上下文
触发 BFC 的条件:
父级块框自带隐藏 BFC 属性 浮动元素 绝对定位元素(包括 absolute 和 fixed) 框类型 display 为:inline-block|table-cell|table-caption overflow 属性为 hidden|auto|scroll BFC 可以解决的问题:
1.(BFC 与 margin)同一个父级块框下,兄弟元素和父子元素的 margin 会发生重叠问题
2.(BFC 与 float)父元素高度塌陷问题、兄弟元素覆盖问题
BFC 与 margin margin 重叠的解决方法:让元素处于不同的 BFC 属性环境下。
BFC 的具体规则:
内部的 Box 将会独占宽度, 且在垂直方向上一个接一个排列
box 在垂直方向上的间距由 margin 属性决定, 但是同一个 BFC 的两个相邻 box 的 margin 会出现编剧折叠现象。
每个 box 在水平方向上的左边缘与 BFC 的左边缘相对齐,即使存在浮动也是如此。
BFC 区域不会与浮动元素折叠, 而是会依次排列
浮动元素的高度也参与 BFC 的高度计算
有下面特点
边距折叠
清除浮动
自适应多栏布局
例题实战:
BFC 区域不会与浮动元素重叠, 而是会依次排列
// child 为浮动元素,高度『坍塌』
// 触发 box 在垂直方向上的间距由 margin 属性决定,但是同一个 BFC 的两个相邻 box 的 margin 会出现边距折叠现象
最后更新于
这有帮助吗?