CSS浮动总结

166 阅读5分钟

结构伪类选择器找到偶数、奇数个li标签

  • 偶数个li标签

    • li:nth-child( 2n ) { css }
    • li:nth-child( even ) { css }
  • 奇数个li标签

    • li:nth-child( 2n+1 ) { css }
    • li:nth-child( odd ) { css }

浮动的作用

  • 早期的作用

    • 图文环绕
  • 现在的作用

    • 网页布局

      • 让垂直布局的盒子变成水平布局

浮动元素的特点

  • 1、浮动之后会脱标,在标准流中不占位置

  • 2、浮动的元素层级比标准流层级高出半个级别,可以覆盖标准流的元素

  • 3、浮动找浮动,下一个浮动的元素会在上一个浮动元素的后面进行左右浮动

  • 4、浮动元素会受上方元素边界的影响

  • 5、浮动元素会有特殊的(行内块元素的)显示效果

    • 1、一行可以显示多个
    • 2、可以设置宽高

常见的清除浮动方法

  • 1、给父元素设置高度

  • 2、额外标签法

    • 浮动元素的后面添加div(clear:both)
  • 3、单伪元素清除法

  • 4、双伪元素清除法

  • 5、给父元素设置overflow:hidden

结构伪类选择器

  • 匹配父元素中的第一个子元素E

    • E:first-child{}
  • 匹配父元素中的最后一个子元素E

    • E:last-child{}
  • 匹配父元素中的第n个子元素E

    • E:nth-child(n) {}

    • 拓展

      • 括号里面可以写一个带n的式子

        • n:0,1,2,3,4,5.....
      • 偶数

        • E:nth-child(2n) {}
        • E:nth-child(even) {}
      • 奇数

        • E:nth-child(2n+1) {}
        • E:nth-child(2n-1) {}
        • E:nth-child(odd) {}
      • 找到前5个

        • E:nth-child(-n+5) {}
      • 找到从第5个开始往后

        • E:nth-child(n+5) {}
    • 注意点

      • li*12>a 中,如果需要找到第一个a,结构伪类选择器注意不要写错!!!
      • li:first-child a { css }
  • 匹配父元素中倒数的第n个子元素E

    • E:nth-last-child(n){}
  • 匹配父元素中同类型子元素中的第n个

    • E:nth-of-type(n){}

伪元素

  • 假的元素

    • 一般页面中的非主体内容中可以使用伪元素
  • 区别

    • 元素

      • html设置的标签
    • 伪元素

      • 由css模拟出来的标签效果
  • 种类

    • ::before

      • 在父元素内容的最前面添加一个伪元素
    • ::after

      • 在父元素内容的最后添加一个伪元素
  • 注意点

    • 1、有一个必加的属性

      • content:‘伪元素中的内容’;
    • 2、默认是行内元素

标准流

  • 又称:文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素

  • 常见排版规则

    • 1、块级元素

      • 从上往下

        • 垂直布局
        • 独占一行
    • 2、行内元素和行内块元素

      • 从左往右

        • 水平布局
        • 空间不够自动折行

浮动

  • 作用

    • 早期的作用

      • 图文环绕
    • 现在的作用

      • 用于布局
      • 让垂直布局的盒子变成水平布局,如:一个在左,一个在右
  • 代码

    • float:left

      • 左浮动
    • float:right

      • 右浮动
  • 浮动的特点

    • 1、浮动的元素会脱离标准流

      • 相当于飘到了空中
      • 在标准流中就不占位置
    • 2、浮动的元素比标准流高出半个级别

      • 可以覆盖标准流中的元素
    • 3、浮动找浮动

      • 下一个浮动元素会在上一个浮动元素后面左右浮动
    • 4、浮动会受到上面元素边界的影响

    • 5、浮动的元素有特殊的显示效果

      • 1、一行可以显示多个
      • 2、可以设置宽高
    • 注意点:浮动的元素不能通过text-align:center或者margin:0 auto,让浮动的元素水平居中

  • (案例)网页布局案例

  • (案例)小米模块案例

  • (案例)网页导航案例

清除浮动

  • 含义

    • 清除浮动带来的影响

    • 影响

      • 如果子元素浮动,此时子元素不能撑开标准流的块级父元素。
  • 清除浮动的方法

    • 1、直接设置父元素的高度

    • 2、额外标签法

      • 1、在父元素的最后添加一个块级元素
      • 2、需要给添加的块级元素设置清除浮动的核心代码:clear:both
      • 缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂
    • 3、单伪元素清除法

      • 用伪元素替代了额外标签

        • ::before ...之前
        • ::after ...之后
        • 两个::是css3的规范,如果要兼容老版本的浏览器,一般使用的是:
      • 代码

        .clearfix::after {

        content: '';
        ​
        display: block;
        ​
        clear: both;
        

        }

        • content:‘’;

          • 伪元素必加的属性
        • display:block

          • 伪元素默认是行内元素,需要转换成块级元素
        • clear:both

          • 清除浮动的核心代码
        • 补充的代码(作用:就是在页面中看不到伪元素)

          • height:0;

          • visibility:hidden

            • 元素隐藏
    • 4、双伪元素清除法

      • 作用

        • 1、清除浮动
        • 2、解决外边距折叠的塌陷现象
      • 代码

        .clearfix::before,

        .clearfix::after {

        content: "";
        ​
        display: table;
        

        }

        .clearfix::after {

        clear: both;
        

        }

    • 5、给父元素设置一个overflow:hidden

(拓展补充)BFC

  • 概念

    • 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。
  • 创建BFC方式

    • 1、html标签

    • 2、浮动元素

    • 3、overflow取值不为visible

      • 如:overflow:hidden
    • ......

  • 特点

    • BFC是一种块级元素的布局空间,在BFC这个布局空间中存在以下两个特点:

    • 1、BFC盒子会默认包裹住内部子元素(标准流、浮动)

      • 应用:清除浮动
    • 2、BFC盒子与子元素之间不存在margin的塌陷现象

      • 应用:解决margin的塌陷
    • ......