为了账号安全,请及时绑定邮箱和手机立即绑定

大佬们救救我啊啊啊啊啊

结合很多网上写的区别,但在实践中对子选择器和后代选择器有以下几个疑问:

  1. <p class="A">....<span>①</span>.............<span>②</span>...............</p>

    后代选择器:. A span{.....}    输出结果:①②均被改变

    子选择器:.A>span{....}       输出结果:①②均被样式改变了!!真的!!!!我不懂这是什么操作,不是应该只有①改变么!!

  2. <p class="A">....<span>①</span>.........<p>....<span>②</span>.......</p>........</p>

    后代选择器:. A span{.....}    输出结果:只有①被改变了啊啊啊啊啊啊!!!!什么操作啊!!

    子选择器:.A>span{....}       输出结果:只有①被改变


这和我看到的演示不一样啊!!然后我就迷茫了。。求大神解释!!!!

正在回答

5 回答

我试过了,你可以修改例2中间<p class ="first">。。。</p>.span两种方式都会有效果。

另外第一次听说段落嵌套段落

0 回复 有任何疑惑可以回复我~
#1

能小白 提问者

0.0,p不能嵌套的么。。我以为块状元素的都可以嵌套来着。。。
2018-08-01 回复 有任何疑惑可以回复我~
#2

iMOOCER_ 回复 能小白 提问者

在评论了上一个,我也想嵌套p,但发现会出现错误
2018-08-05 回复 有任何疑惑可以回复我~
#3

iMOOCER_ 回复 iMOOCER_

https://blog.csdn.net/Call_me_small_pure/article/details/78020681
2018-08-05 回复 有任何疑惑可以回复我~
  1. <span>没有嵌套,所以子选择器不对

  2. 将<p>删除

0 回复 有任何疑惑可以回复我~
#1

能小白 提问者

!!!!大佬!瞬间明白了1,第二个为什么删掉<p>?
2018-07-17 回复 有任何疑惑可以回复我~
#2

慕斯卡1556068 回复 能小白 提问者

你第二个也不是嵌套,但是子选择器却对了,是因为第二个<span>不是第一个<p>的后代,等于对第二个<span>无效
2018-07-17 回复 有任何疑惑可以回复我~
#3

能小白 提问者 回复 慕斯卡1556068

大佬能说一下为什么不是嵌套么。。。
2018-07-17 回复 有任何疑惑可以回复我~
#4

慕斯卡1556068 回复 能小白 提问者

先问你你是想嵌套什么?我先认为你是想嵌套<span> <span>内容<span>内容</span>内容</span> 如果你是想嵌套<p>的话,那么你的选择器只能作用于第一个<span>,因为第二个<span>不是A的后代。
2018-07-17 回复 有任何疑惑可以回复我~
#5

能小白 提问者 回复 慕斯卡1556068

<div class='con'> <div> <p>span1 <div> <p>span2 </p> </div> </p> </div> </div> 两个都是变化的。。
2018-07-17 回复 有任何疑惑可以回复我~
#6

能小白 提问者 回复 慕斯卡1556068

我之前百度的找不到了,上面那个是我找的类似的后代选择器的示例,我有点不明白,我嵌套的是p,为什么包含在内的span不是A的后代了呢?求大佬讲解谢谢
2018-07-17 回复 有任何疑惑可以回复我~
#7

iMOOCER_ 回复 能小白 提问者

第二个不是嵌套,是因为第二个<span>不是<p>的后代,它不在第一个span所属的段落;改为<p class="A">....<span>①</span>........<span>②</span>.......</p>...<p>.....</p>;每一个起始标签p都有自己的赋予属性,第二个p没有给予赋予的属性。
2018-08-05 回复 有任何疑惑可以回复我~
查看4条回复

“另外,感觉你的第二个举例实际上变成了:

<p class="A">....<span>①</span>.........</p><p>....<span>②</span>.......</p><p>........</p>

嗯,奇妙”

不好意思打错了~


0 回复 有任何疑惑可以回复我~

同样是新手,看了你问题,也思考了一下,以下愚见:

你的第一个例子下两个<span>标签应该都第一代子元素,所以无论是用子选择器和后代选择器,输出结果应该是一样的。

按照教程中给的例子,你可以试着写下<p class="A">....<span>①...<span>②</span>....</span></p>

再分别用后代选择器和后代选择器试,结果是不一样的。

第二个例子<p class="A">....<span>①</span>.........<p>....<span>②</span>.......</p>........</p>中

是不是可以理解为类别器名称A中的css样式只修饰第一个<p>标签下被<span>标签标记的内容,因为可以看到两个<p>标签,而②是第二个<p>标签下被标记的内容,如果同样要作用到它,应该在第二个<p>标签中同样用class="A"说明,写成:

<p class="A">....<span>①</span>.........<p class="A">....<span>②</span>.......</p>........</p>

<hr />

另外,感觉你的第二个举例实际上变成了:

<p class="A">....<span>①</span>.........</p><p class="A">....<span>②</span>.......</p><p>........</p>

嗯,奇妙。

0 回复 有任何疑惑可以回复我~
#1

能小白 提问者

1.我试了一下你说的第一个例子,结果二者仍旧一模一样 2.第二点我有点不太同意。。p标签是块状元素啊,我举得例子应该是一个块状被包含在一个块状元素里面,而你说的我第二个例子实际变成的样子应该是两个并列的块状元素。(可能写成div会更好理解吧),关于第二点不加class的原因是我看到了许多网页上的区别讲解,没有加class两个选择器的结果都是不一样的,所以还是有疑问的。。。
2018-07-16 回复 有任何疑惑可以回复我~
#2

能小白 提问者

虽然我还是认同你说的加class解决的方法,但是还是。。。哈哈哈哈哈哈
2018-07-16 回复 有任何疑惑可以回复我~

这个我不会

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识HTML(5)+CSS(3)-升级版
  • 参与学习       1225792    人
  • 解答问题       18234    个

HTML(5)+CSS(3)基础教程8小时带领大家步步深入学习标签用法和意义

进入课程

大佬们救救我啊啊啊啊啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信