老师请帮我看一下,显示效果不太对

来源:2-45 伪元素after(二)

愛码仕

2020-05-07 01:52:17

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        p:before{content:"我是后加的";}

        div:first-child{color: red;}

    </style>

</head>

<body>

    <p>

        <div>我是div</div>

    </p>

</body>

</html>

我写的又那里不对吗?为什么在浏览器中出现了两个::before

而且我还有个问题。我当时写这个是想测试一下,添加了伪元素以后,如果我用div:first-child{color:red}来改变<p>标签下的第一个元素的字体样式的话,那么伪元素::before会被算成是第一个元素吗?测试结果伪元素:before的字体颜色没有改变。所以我的测试结果是正确的吗?添加了伪元素以后,再用伪类的话,伪元素是不算在内的吗?

写回答

1回答

好帮手慕码

2020-05-07

同学你好,解答如下:

(1)因为p标签嵌套div标签是不规范的,所以浏览器无法正确解析。解析结果如下:

http://img.mukewang.com/climg/5eb371d709cb1e7202340176.jpg

所以出现了2个p标签,2个伪类。

(2)不是的,伪元素不算的。也是因为标签嵌套不规范,导致浏览器呈现的标签嵌套与同学书写的不一样,如上图。div并不是p标签中的子标签,所以样式没有生效。可以修改标签试一下:

http://img.mukewang.com/climg/5eb372d10957fba703000240.jpg

效果:

http://img.mukewang.com/climg/5eb372da09e08f0701490053.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程