盒模型
行内元素:
- 有行高/外边距/内边距/边框
- 但box-sizing没有用,因为他不能设置宽高
行内块元素:
- 有宽高/行高/外边距/内边距/边框
- box-sizing有用,因为他能设置宽高
修改元素
display:
- table——以表格形式呈现,宽高默认被内容撑开,可以处理外重叠问题
- block——使其他元素变成块元素
- inline——使其他元素变成行内元素
- inline-block——使其他元素变成行内块元素
- flex——弹性布局
- none——隐藏元素,在页面中不占位置
水平居中布局
- 块元素:margin:0 auto——外边距上下为0,左右居中(这种方法只能给块元素设置)
- 行内元素和行内块元素:text-align:center——字体居中(要给父元素设置)
- 行内块元素并列时会出现3px的间隙问题,是由换行所造成的,间隙大小和父元素的字体大小有关。所以解决这个问题需要把父元素的字体设为0,记得设置完成后,给子元素重新设置字体大小,否则字体不会显示。
文档流:
文档流是文档最底层的排序
脱离文档流(文档流的上一层元素):
- 脱离文档流后,会分为行内元素/块元素/行内块元素的排序(没有元素限制,大家都算一种元素)
- 脱离文档流后,宽高会丢失
高度塌陷:
- 脱离文档流后,会出现父元素高度塌陷的问题
解决高度塌陷问题:
- 在父元素下面添加一个块元素,不设置高度,且添加清除浮动,但这种方法有一个缺点,会添加一个无用元素
- 给父元素添加一个伪元素::before(最前)/::after(最后)的空白区域添加空内容——content,设置空白内容变为块元素block和table都可以,最后在添加清除浮动就可以了。
浮动
浮动布局——float:
- left——左浮动
- right——右浮动
清除浮动——clear:
- left——清除左浮动
- right——清除右浮动
- both——清除影响最大的浮动
既想解决高度塌陷问题,又想解决外边距重叠问题时:
给父元素添加一个伪元素::before(最前)/::after(最后)的空白区域添加空内容——content,设置空白内容变为块元素table,最后在添加清除浮动就可以了。
开发规范
给所有需要解决高度塌陷问题和外边距重叠问题的元素,添加一个clearfix类,然后在clearfix中使用上面描述的方法即可
虎哥小知识
块元素不管设置多大多小的宽高他都是会独占一行
杀马特团长,你看你领的内几个贵物,还有你,人不人鬼不鬼滴,就你还要抓我嗷?在掘金论坛,别让我看到你,看到你头套必须给你拽掉,必须打你脸!