美文网首页CSS基础
<CSS>问题:伪元素选择器清除浮动使得父元素有高度

<CSS>问题:伪元素选择器清除浮动使得父元素有高度

作者: 玉圣 | 来源:发表于2018-04-25 22:10 被阅读11次

刚刚学习CSS中清除浮动的这一块知识点,利用伪元素选择器可以清除浮动,示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS清除浮动四</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box1 {
            background-color: greenyellow;
        }

        .box2 {
            background-color: indianred;
        }

        .box1 p {
            width: 100px;
            background-color: pink;
            float: left;
        }

        .box2 p {
            width: 100px;
            background-color: deepskyblue;
            float: left;
        }

        .box1::after{
            content: '';
            display: block;
            clear: both;
            height: 0;
            visibility: hidden;
        }

    </style>
</head>
<body>
<div class="box1">
    <p>我是文字啊1</p>
    <p>我是文字啊1</p>
    <p>我是文字啊1</p>
    <p>我是文字啊1</p>
    <p>我是文字啊1</p>
</div>
<div class="box2">
    <p>我是文字啊2</p>
    <p>我是文字啊2</p>
    <p>我是文字啊2</p>
    <p>我是文字啊2</p>
    <p>我是文字啊2</p>
</div>
</body>
</html>
示例图片

在显示的结果中,可以发现,父元素div(.box1)的高度是21px(通过谷歌的开发者工具可得,图中右侧红色箭头所指),有淡绿色的背景,这就让我有点不解。

在之前学习浮动的时候,浮动元素会脱离标准流,使得父元素的高度为0,加上了伪元素选择器添加的内容,这个伪元素选择器添加的内容似乎应该在父元素的左上角,浮动元素会盖住它才对。后来经过自己的思考和分析,觉得可能是如下原因导致的:

1、浮动元素的字围现象:
伪元素选择器添加的内容(块级),清除浮动之后,会在浮动元素的下方,而不是被浮动元素盖住的原因,可能是字围现象导致的,字围现象也就是没有浮动的元素中的内容会自动给浮动的元素让出位置,即浮动元素会在父元素中占一定的空间,而不会盖住没有浮动的元素的内容。
其实可以通过删除伪元素选择器中添加的content属性来观察一下,去除content属性之后,清除浮动的效果就消失了。

是否真的是此种原因导致的,只是我的猜测而已,如果有朋友知道其中的原理,还请多多指正,非常感谢。

相关文章

  • <CSS>问题:伪元素选择器清除浮动使得父元素有高度

    刚刚学习CSS中清除浮动的这一块知识点,利用伪元素选择器可以清除浮动,示例代码如下: 在显示的结果中,可以发现,父...

  • 2017-02-21 CSS学习笔记 am

    浮动元素高度问题 在标准流中内容的高度可以撑起父元素的高度 在浮动流中浮动的元素是不可以撑起父元素的高度的 清除浮...

  • 清除浮动流

    浮动元素高度问题 在标准流中内容的高度可以撑起父元素的高度 在浮动流中浮动的元素是不可以撑起父元素的高度的 清除浮...

  • html css js 基础六(清除浮动)

    由于元素使用了float,使得父级的高度塌陷,也就是父级的高度撑不起来。所以就需要清除浮动。清除浮动的意思其实是清...

  • web-6

    目录◆ 结构伪类选择器◆ 伪元素◆ 标准流◆ 浮动◆ 清除浮动 一、结构伪类选择器 目标:能够使用 结构伪类选择器...

  • 清除浮动

    清除浮动和闭合浮动 区别:清除浮动虽然排版正确,但是,浮动元素的父元素的高度为空; 闭合浮动:闭合浮动后元素高度正...

  • 入门任务10

    1、浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 2、清除浮动指什么? 如何清除浮动...

  • css浮动及定位

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 清除浮动指什么? 如何清除浮动? 两种...

  • 清除浮动的方法

    清除浮动 清除浮动的作用 为了解决父级元素因为子级元素浮动导致高度为0的问题,将浮动的盒子圈在内部,让父盒子闭合出...

  • html基础之一

    1、浮动带来的问题及其清除方法 问题:(1)父元素的高度无法被撑开,影响与父元素同级的元素(2)与浮动元素同级的非...

网友评论

    本文标题:<CSS>问题:伪元素选择器清除浮动使得父元素有高度

    本文链接:https://www.haomeiwen.com/subject/uelulftx.html