zoukankan      html  css  js  c++  java
  • 浮动布局

       在学习浮动布局和定位布局之前,先对“正常文档流”和“脱离文档流”就行了解,这两个概念,是深入学习浮动布局和定位布局的理论前提。

       1:正常文档流

             文档流:指元素在页面中出现的先后顺序。

             正常文档流(普通流):将一个页面从上到下分为一行一行,其中块元素独占一行,相邻行内元素在每一行中按照从左到右排列直到该行排满。

                                                     也就是说,正常文档流就是默认情况下页面元素的布局情况。

       2:脱离文档流

            脱离文档流:指的是脱离正常文档流。正常文档流就是我们没有使用浮动或者定位去改变默认情况下的HTML文档结构。若改变正常文档流,有两种方法:浮动和定位。

       3:浮动

            浮动,可以使得元素移到左边或者右边,并且允许后面的文字或元素环绕着它。浮动,最常用于实现水平方向上的并排布局,例如两列布局、多列布局。

            float属性只有三个取值:left,right和none。

            浮动特点:

                    (1)当一个元素定义了“float:left”或“float:right”时,不管这个元素之前是inline,inline-block或者其他类型,都会变成block类型。关于inline,inline-block和block的学习总结,在前面博客里有总结,可以查阅学习。浮动元素表现为块元素效果,可以定义width,height,padding和margin。可以使用margin-left或margin-right来定义浮动元素与其他元素之间的距离。

                    (2)当一个元素定义了“float-left”或"float-right"时,这个元素会脱离文档流,后面的元素会紧跟着填上空缺的位置。

        4:浮动的影响

             (1)对自身的影响

                      如果一个元素设置了浮动,则不管这个元素是什么类型,都会转化为块元素,也就是说display属性值为block。(关于display属性的学习总结在前面博客也总结十分详细,有需要查阅学习的可以阅读)

             (2)对父元素影响

                      如果一个元素设置了浮动,它会脱离正常文档流。如果浮动元素的高度height大于父元素的高度height,或者父元素没有定义高度height,此时浮动元素会脱离父元素。也就是所谓的“父元素高度塌陷”。造成父元素高度塌陷的原因在于,父元素的高度小于子元素的高度,或者父元素没有定义高度,父元素不能把子元素包裹起来。

             (3)对兄弟元素的影响

                      ①兄弟元素是浮动元素

                           当一个浮动元素,它的兄弟元素也是浮动元素时,分两种情况。Ⅰ:同一方向的兄弟元素。Ⅱ:相反方向的兄弟元素

                           Ⅰ:同一方向的兄弟元素

                                  当一个浮动元素碰到同一个方向的兄弟元素时,这些元素会从左到右、从上到下,一个接着一个紧挨着排列。

                           Ⅱ:相反方向的兄弟元素

                                 当一个浮动元素碰到相反方向的兄弟元素时,这两个元素会移向两边(如果父元素宽度足够的话)。

                     ②兄弟元素不是浮动元素

               (4)对子元素的影响

                        如果一个元素是浮动元素(没有定义height),并且它的子元素也是浮动元素,则这个浮动元素会自适应地包含该子元素。

       5:浮动的负作用

             (1)父元素高度塌陷,从而导致边框不能撑开,背景色无法显示。

             (2)页面布局错乱。

       6:清除浮动

             清除浮动,就是清除元素被定义浮动之后带来的脱离文档流的影响。

             在CSS中,常见的清除浮动的方法有三种。

             (1)clear:both

                      在CSS中,可以使用clear属性来清除浮动,clear属性取值有三个:left,right和both。

                      注意:clear属性不是应用于浮动元素本身,而是应用于浮动元素后面的元素。

             (2)overflow:hidden

                      overflow:hidden应用于浮动元素的父元素,而不是当前的浮动元素。

             (3)::after

                      使用“clear:both”和“overflow:hidden”来清除浮动都有明显的弊端,在实际开发中,是使用“::after伪元素”结合“clear:both”来实现。

       

  • 相关阅读:
    201621123059《Java程序设计》第二周学习总结
    学习计划表
    201621123059《java程序设计》第一周学习总结
    C语言I作业06
    C语言I博客作业05
    C语言I博客作业04
    志勇的C语言I博客作业03
    志勇的C语言I博客作业02
    志勇的第一周作业
    pdf文件完美转换技巧分享
  • 原文地址:https://www.cnblogs.com/aixing/p/13327818.html
Copyright © 2011-2022 走看看