BFC
开启后具有特性:
1.父元素的垂直外边距不会和子元素重叠
2.开启BFC的元素不会被浮动元素所覆盖
3.开启BFC的元素可以包含浮动的子元素
如何开启元素的BFC
1.设置元素浮动
2.设置元素绝对定位
3.设置元素为inline-block
4.将元素的overflow设置为一个非visible的值
浮动
当一个元素浮动以后,其下方的元素会上移。元素中的内容将会围绕在元素的周围。
浮动会使元素完全脱离文本流,也就是不再在文档中在占用位置。元素设置浮动以后,会一直向上漂浮直到遇到父元素的边界或者其他浮动元素。
元素浮动以后即完全脱离文档流,这时不会再影响父元素的高度。也就是浮动元素不会撑开父元素。
浮动元素默认会变为块元素,即使设置display:inline以后其依然是个块元素。
清除浮动
clear属性可以用于清除元素周围的浮动对元素的影响。
也就是元素不会因为上方出现了浮动元素而改变位置。
可选值:left:忽略左侧浮动 right:忽略右侧浮动 both:忽略全部浮动 none:不忽略浮动,默认值
定位
position属性可以控制Web浏览器如何以 及在何处显示特定的元素。
可以使用position属性把一个元素放置到网页中的任何位置。
可选值:static relative absolute fixed
相对定位
每个元素在页面的文档流中都有一个自然位置。相对于这个位置对元素进行移动就称为相对定位。周 围的元素完全不受此影响。
当将position属性设置为relative时,则开启了元素的相对定位。
当开启了相对定位以后,可以使用top、right、 bottom、left四个属性对元素进行定位。
相对定位的特点:
如果不设置元素的偏移量,元素位置不会发生改变。相对定位不会使元素脱离文本流。元素在文本流中的位置不会改变。
相对定位不会改变元素原来的特性。
相对定位会使元素的层级提升,使元素可以覆盖文 本流中的元素。
绝对定位
绝对定位指使元素相对于html元素或离他最近的祖先定位元素进行定位。
当将position属性设置为absolute时,则开启了元素的绝对定位。
当开启了绝对定位以后,可以使用top、right、 bottom、left四个属性对元素进行定位。
绝对定位的特点
绝对定位会使元素完全脱离文本流。
绝对定位的块元素的宽度会被其内容撑开。
绝对定位会使行内元素变成块元素。
一般使用绝对定位时会同时为其父元素指定一 个相对定位,以确保元素可以相对于父元素进 行定位。