怎么判断是否是继承的选择器

怎么判断是否是继承的选择器

①老师,您看为什么第一个超链接不能生效,第二个写他的父标签就可以生效。

②为什么p上的样式对a来说是继承的样式呢,p不也是标签吗,为什么它就是继承了呢,这点不太理解。

③判断是不是继承选择器不是靠看有没有标签嘛(为什么①有标签p却还是继承选择器呢)

希望老师耐心给我讲一下啦❤。

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>Document</title>

    <style>

      p {

        text-decorationnone;

        colorred;

      }

      span {

        colorpaleturquoise;

      }

    </style>

  </head>

  <body>

    <p>

      <a href="">点我</a>

    </p>

    <span>

      <p>我是文字</p>

    </span>

  </body>

</html>



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,对于你的问题解答如下:

1、a标签有默认的color属性,无法继承祖辈元素设置的color属性,所以给它的父元素p设置color并不会作用在a标签上,这个在本节中最后也有详细的讲解哦,如下:

http://img1.sycdn.imooc.com//climg/60fe1bf509da141610680702.jpg

“第二个写他的父标签就可以生效” 是指下图这种写法吗?

http://img1.sycdn.imooc.com//climg/60fe1c8909f0b16606550590.jpg

如果是的话,那么是因为p标签并没有默认的color属性,所有会继承给它父元素span设置的color属性,显示为蓝色

如果不是的,可以图文结合详细描述下,具体指的是哪里。便于帮助同学准确的定位与解决问题。

2、因为通过p标签选择设置的样式是针对p标签的,a标签作为p标签的子元素,本来应该继承p标签设置的color和text-decoration属性,但是由于a自身默认有这两个属性,所以会优先使用自身的这两个属性值,导致继承的属性不生效。

p是标签,提到的继承是针对a标签的,a标签会继承p标签设置的样式。

3、没有继承选择器这个说法,只有继承样式的说法,一般子元素会继承设置在它祖辈元素上的样式,此时,对于子元素来说,就是继承的样式。例如:

http://img1.sycdn.imooc.com//climg/60fe1ecb09aa348c05500358.jpg

给div设置color属性,里面的子元素span并没有设置color属性,但是span文字显示为红色,可以打开控制台,选中span查看,因为span继承了div设置的color属性所以文字才显示为红色,如下:

http://img1.sycdn.imooc.com//climg/60fe1f17098010f410850411.jpg

祝学习愉快~

  • qq_慕仰20210716 提问者 #1

    谢谢老师为我答疑解惑!

    ①老师,是不是我该这样理解:对于继承的样式,不应该只看表面有没有标签,比如

    http://img1.sycdn.imooc.com//climg/60fe6b5e09f55d6803010349.jpg

    .box也不属于继承的样式吧,因为div没有子标签,是类选择器。对吗。老师

    http://img1.sycdn.imooc.com//climg/60fe6c90090c64ff02340109.jpghttp://img1.sycdn.imooc.com//climg/60fe6ca009f5157904470102.jpg

    老师,这种方式就是利用继承设置样式了吧,因为里边有子标签了。请问老师我这么理解对吗,辛苦老师回答我啦

    2021-07-26 16:06:19
  • 同学你好,两处理解都是对的,祝学习愉快~

    2021-07-26 16:18:56
  • 老师,我把理解写注释里了。没问题吧,辛苦老师再看一下啦

    <!DOCTYPE html>

    <html lang="en">

      <head>

        <meta charset="UTF-8" />

        <meta http-equiv="X-UA-Compatible" content="IE=edge" />

        <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        <title>Document</title>

        <!-- 在此之前,我对利用继承设置样式,一致停留在文字表面,为此:我以后学习要勤于思考,切忌囫囵吞枣,要理解为什么 -->

        <!-- 什么是继承:父亲是什么样式,孩子也跟着是什么样式(在继承中优先使用就近原则,一样近就计算权重)

            在5.5.3中,给p标签设置了样式,但是子标签a并没有跟着变,a标签本身就有自己的样式,且就近原则,所以不随父改变了。而第二个就会改变,因为p本身没有样式,就听span的话。

                这时,在第一个中:p{}就是对a利用继承的方式设置样式,因为a是p的孩子,要跟随父亲,但是它本身已有,就不再改变是因为谁也没有直接把样式写在标签本身身上来得近(优先级更高)a本身就具有-->

        <!-- 

                下边第一个样式是继承(孩子是.box2,它本身无样式,所以会生效父亲的样式)

                第二个就是普通的类选择器样式(没儿子怎么继承),不要搞混哦~

             -->

        <style>

          .box1 {

            colorred;

          }

          .box3 {

            colorblue;

          }

        </style>

        s

      </head>

      <body>

        <div class="box1">

          <div class="box2">123</div>

        </div>

        <div class="box3">456</div>

      </body>

    </html>



    2021-07-26 16:47:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师