清除浮动、BFC、伪元素选择器

清除浮动

概念

如果子元素浮动了,此时子元素不能撑开标准流的块级父元素

原因:子元素浮动后脱离了标准流

解决:

给父元素设置高度

内容的高度高于父元素,父元素不会被撑开,影响了整体的布局

额外的标签
  • 在父元素内容的最后面添加一个块级元素

  • 给添加的块级元素设置 clear:both

缺点:在页面中添加额外的标签,页面的结构变得复杂

单伪元素清除法

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

基本写法

/* 伪元素替代额外的div  基本写法 */
.box::after {
content: '';
/* 转换为块元素 */
display: block;
clear: both;
}

完整写法

/* 伪元素替代额外的div  基本写法 */
.box::after {
content: '';
/* 转换为块元素 */
display: block;
clear: both;
height: 0;
visibility: hidden;
}

优点:给标签添加类就可以清除浮动

单伪元素清除浮动

 

双伪元素清除法
.clear::before,
.clear::after {
content: '';
/*类似于table 作为块级表格来显示
表格前后有换行符 */
display: table;
}
.clear::after {
clear: both;
}
给父元素设置overflow:hidden
  • 直接给父元素添加overflow:hidden属性

    .clear {
    overflow: hidden;
    }

    好处:方便(内容溢出隐藏)

BFC

块格式化上下文(Block Formatting Context)

触发BFC会独立出来一个渲染区域,让处于BFC内部的元素与外部的元素相隔离,使内外元素不会相互受影响

BFC能够影响盒模型的渲染规范

怎么触发BFC

  • 浮动元素float属性为left/right

  • 定位元素position属性为absolute 和fixed

  • 行内块元素 是BFC盒子

  • html标签是BFC盒子

  • overflow属性取值不为visible ,如auto,hidden

BFC盒子特点

  • bfc盒子会默认包裹住内部子元素(标准流 ,浮动)---应用 清除浮动

  • BFC盒子本身与子元素之间不存在margin的塌陷问题---应用 margin 塌陷

伪元素选择器

::before
::after

代码

  .box {
    }

    /* 在元素的内容的前面添加内容*/
    .box::before {
      content: 'width';
      color: red;
      font-size: 40px;
    }
    /* 在元素的内容的后面添加内容*/
    .box::after {
      content: 'word';
      color: blue;
    }
 
posted @ 2022-07-14 12:10  YBYZ  阅读(56)  评论(0)    收藏  举报