css样式1 浮动(float)


在讲解之前 我们需要知道一个名词:文档流 

他的意思是这样描述的:页面元素按照从上至下、从左至右排列而成的文档结构,称为文档流。

浮动:float

描述:浮动就是让元素脱离文档流,相当于漂浮在页面之上,不占用文档流空间  后面文档流样式会移上去占用漂浮的空间, 显示在页面看文档流的结构被浮动元素压在下面

本质:为了实现文字环绕效果,但我们目前更多的就是利用了这个特性,来使得块元素排成一行

 语法:float:left  |    right (向左浮动:元素脱离文档流,并靠着所在容器的左侧排列    向右浮动:元素脱离文档流,并靠着所在容器的右侧排列)

漂浮之前样式                                                                                                            加了紫色盒子左浮动   红色盒子右浮动的样式

他们所在容器的就是dahezi     所以添加了浮动之后就在dahezi这个容器里面左浮动右浮动

                      

有几个要说明的地方  我会挨着做案例分析讲解  

①由于浮动本身是为了实现文字环绕,所以浮动元素仅会遮挡文档流元素的结构  却不会遮挡文档流中的文本

遮挡结构前的样式                                                                                                只给第一个紫色盒子添加左浮动后 遮挡红色结构后的样式

               

给里面添加文字前的样式                                                                                              添加文字后页面的样式(并没有把第二个盒子里面的文字给盖住)

                              

 ② 如果多个元素发生了浮动  那么多个元素会排列称为一排,如果第一排最后浮动的宽度大于第一排余留的宽度  那么会另起一行显示在第二排的左边或者右面   浮动元素会紧贴在一起排列

三个盒子没浮动之前根据文档流排列的                                                         三个盒子浮动之后的排列样式

                    

 ③如果一个元素发生了浮动,那么这个元素既不是行元素,也不是块元素,而被称为【浮动元素】  浮动元素的大小仅由自己控制

过程中有关浮动的最大问题:当一个父元素没有设置高度的时候,其高度应该由其内部的子元素高度撑开,

此时如果子元素发生了浮动,就会导致父元素的高度丢失 这种现象称为【高度塌陷】

当我们没有给父元素设置高度的时候,也没给子元素添加浮动是这样是的                                  当父元素没有设置高度,给子元素全部添加浮动是这样子的

此时父元素高度就是子元素相加的高度                                                                                         此时父元素的高度没有变成了一条直线   

                       

 解决高度塌陷 

办法一                                                                                                                                   办法二

只需要在浮动的后面添加一个空白的块元素                                                                          给父元素添加overflow:hidden  

并对这个块元素设置clear:both样式

               

 清除浮动最常用的方法就是上面两种   其它方法还有空白元素法   和  父级伪元素::after添加clear:both

                                       

相关