高度塌陷、解决高度塌陷1、2、3、导航条、清除浮动

高度塌陷:

在文流档中,父元素高度默认由子元素撑开,当子元素设置浮动后,子元素完全脱离文档流,导致父元素的高度坍塌

父元素的高度坍塌,导致父元素下的所有元素都会向上移动,导致页面布局混乱

解决高度塌陷1:

BFC开启后,元素所具有特性: 

                         1、父元素的垂直外边距不会和子元素重叠 

                         2、开启BFC的元素不会被浮动元素所覆盖

                         3、开启BFC的元素可以包含浮动的子元素

如何开启BFC:(IE6及以下浏览器不可兼容)

                        1、设置元素浮动            (不推荐)使用这种方式开启,虽然可以撑开父元素,但是会导致父元素的宽度丢失,而且使用这种方式也会导致下边的元素上移        

                        2、设置元素绝对定位      (不推荐)         

                        3、设置元素为inline-block    (不推荐)可以解决问题,但是会导致宽度丢失        

                        4、将元素的overflow设置为一个非visible的值(副作用最小)

推荐方式:将overflow设置为hidden是副作用最小的开启BFC的方式

zoom样式只可兼容IE浏览器

zoom表示放大的意思,后边跟着一个数值,写几就将元素放大几倍

zoom:1;表示不放大元素,但是通过该样式可以开启hasLayout

开启方式使用一种副作用最小的:直接将元素的zoom设置为1即可

当overflow与zoom同时使用,可以兼容所有的浏览器

解决高度塌陷2:

                    首先,直接在高度坍塌的父元素后添加空白div,所添加的空白div没有浮动,因此可以撑开父元素的高度

                    其次,对其清除浮动,通过空白的div撑开父元素高度,几乎无副作用

 注意:使用这种方式在页面中添加多余的空白块

解决高度塌陷3:

通过after伪类向元素的最后添加一个空白的块元素,然后对其清除浮动(与添加一个div的原理一样,可以达到一个相同的效果)

此方法不会在页面中添加多余的div,推荐使用的,几乎没有副作用

导航条:



清除浮动:

清除掉其他元素浮动对当前元素产生的影响,使用clear

                    可选值:  

                                 left:清除左侧浮动元素对当前元素的影响   

                                 right:清除右侧浮动元素对当前元素的影响

                                 both:清除两侧浮动元素对当前元素的影响

                                           清除对他影响最大的那个元素的浮动——最大值

清除浮动以后,元素会回到其他元素浮动之前的位置


特殊状态是伪类

位置是伪元素

你可能感兴趣的:(高度塌陷、解决高度塌陷1、2、3、导航条、清除浮动)