:after清浮动(大白话)

本文详细解释了子元素浮动后父元素高度丢失的问题,并提供了一种解决方案——使用伪元素:after进行清浮动处理,使父元素能够正确包裹子元素。

子元素浮动之后,父元素是没有高度的(高度为0)。

<div class="div1">
    <p>div1 p1</p>
    <p>div1 p2</p>
</div>
<div>块级</div>
* {
    margin: 0;
    padding: 0;
}
div{
    background-color: pink;
}
.div1{
    background-color: blue;
}
p{
    width: 200px;
    float: left;
    background-color: lightgrey;
}

结果为:
div1高度为0
div1高度为0,且不见背景色蓝色,是因为div1里面的两个p都浮动了。

:after清浮动是要写在父级元素上的,这里即写在div1上。

.div1:after{
    clear: both;
    content: "";
    display: block;
    height: 0;
    visibility: hidden;
}

clear: both; ————清浮动
content: “”; ————这一行必写,仅用来作清浮动用就为空””
display: block; ————确保content的内容是独立块
height: 0; ————确保content的内容不显示
visibility: hidden; ————同上

清完浮动后效果为:
清完浮动

div1被p撑起来了有了高度:
div1有了高度

### CSS 属性解析 #### 1. `min-height: 100vh` `min-height` 属性定义了一个元素的最小高度。当设置为 `100vh` 时,表示该元素的高度至少占据视口(viewport)高度的 100%[^4]。这意味着即使内容较少,该元素也会扩展到屏幕底部,确保页面布局不会因为内容不足而显得过于紧凑。 示例代码: ```css body { min-height: 100vh; display: flex; flex-direction: column; } ``` #### 2. `display: flex` `display: flex` 将一个容器设置为弹性盒子(Flexbox)布局模式。在这种模式下,容器内的子元素会根据容器的可用空间自动调整大小和排列方式。通过 Flexbox,可以轻松实现水平居中、垂直居中以及复杂的布局需求[^1]。 示例代码: ```css .container { display: flex; justify-content: center; align-items: center; } ``` #### 3. `justify-content: center` `justify-content` 属性控制主轴方向上的对齐方式。当设置为 `center` 时,表示将子元素在主轴上居中对齐。在默认情况下,主轴是水平方向,因此 `justify-content: center` 会使子元素在水平方向上居中[^2]。 示例代码: ```css .container { display: flex; justify-content: center; } ``` #### 4. `align-items: center` `align-items` 属性控制交叉轴方向上的对齐方式。当设置为 `center` 时,表示将子元素在交叉轴上居中对齐。在默认情况下,交叉轴是垂直方向,因此 `align-items: center` 会使子元素在垂直方向上居中[^2]。 示例代码: ```css .container { display: flex; align-items: center; } ``` ### 综合效果 当将上述属性组合使用时,可以实现一个元素在父容器中的水平和垂直居中效果。例如: ```css body { min-height: 100vh; /* 确保页面高度至少为视口高度 */ display: flex; /* 启用 Flexbox 布局 */ justify-content: center; /* 主轴(水平方向)居中 */ align-items: center; /* 交叉轴(垂直方向)居中 */ } ``` 以上代码将使页面中的子元素在视口中水平和垂直居中显示。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值