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

关于子选择器不能实现的问题

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>下划线样式</title>

<style type="text/css">

p>span {

    text-decoration:underline;    

}


</style>

</head>

</html>

<body>

<p><span>三年级时,我还是一个<a>胆小如鼠</a>的小</span>女孩。</p> 

</body>

这个代码我用子选择器想让p标签内的子元素span生效但不让span内的a生效

意思就是让“三年级时,我还是一个  的小”实现下下划线的功能 但不让“胆小如鼠”出现下划线,但是代码出来的结果是“三年级时,我还是一个胆小如鼠的小“”都有下划线。这是为什么?

正在回答

4 回答

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>下划线样式</title>

<style type="text/css">

p>span {

    text-decoration:underline;    

}


</style>

</head>

</html>

<body>

<p><span>三年级时,我还是一个</span>胆小如鼠<span>的小</span>女孩。</p> 

</body>



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

7779君3862444 提问者

谢谢谢! 就是这个意思 原来还得把a元素改成span
2016-09-19 回复 有任何疑惑可以回复我~

用后代选择器的话,这种就可以随便玩啊,以后设计应该会用到这种基本思路的吧。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>表格边框</title>

<style type="text/css">

div>ul{

   border:5px red solid;

   width:150px;

   line-height:2em;

   padding:20px; 

}

div>ul>li{border:4px solid yellow}

div>ul>li>ol{border:3px solid blue}

div>ul>li>ol>li{border:2px solid gray}

</style>

</head>

</html>

<body>

<div>

<ul>

  <li>fruit

    <ol>

      <li>banana</li>

      <li>apple</li>

    </ol>

  <li>vegetable</li>

</ul>

</div>

</body>


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

a标签包含在span标签里面,下划线当然会作用于a标签

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

7779君3862444 提问者

,首先谢谢你的回答, 那我设置子选择器的意义就没了啊,我设置子选择器就是为了让是下划线作用到p的第一个子元素span但是不作用到span内的子元素a
2016-09-19 回复 有任何疑惑可以回复我~
#2

xx_千寻 回复 7779君3862444 提问者

具有遗传性,你可以再写一条来取消a标签的下划线
2016-09-19 回复 有任何疑惑可以回复我~
#3

7779君3862444 提问者 回复 xx_千寻

嗯,我知道有遗传性。我就是单纯的想试试子选择器,但在这里没发挥作用,楼下潘玮柏同学帮我解决了这个问题,直接将a元素也改为span 我终于理解了。原来子选择器要发挥作用必须是得子元素里面的标签是一样的
2016-09-19 回复 有任何疑惑可以回复我~
#4

xx_千寻 回复 7779君3862444 提问者

改了之后就不存在第一代第二代的概念了,跟是不是span没关系……
2016-09-19 回复 有任何疑惑可以回复我~
#5

7779君3862444 提问者 回复 xx_千寻

这里的span和a应该都算第一代把,如果span里的元素是span的话应该才能算第一代第二代。这样子选择器才能发挥它的作用
2016-09-19 回复 有任何疑惑可以回复我~
#6

闻好

回复 7779君3862444:你好好看下自己采用的最佳答案,代码只是把下划线分开打了--就你的问题来说,其实是是写了两个“第一代”,并不是你想象的第一代、第二代关系。如果真正写成父代、子代的关系,不提前说明子代默认可以继承的属性的话,还是会继承的。
2016-09-19 回复 有任何疑惑可以回复我~
#7

闻好 回复 7779君3862444 提问者

<p><span><a>...</a></span></p> 这里的span和a的确是父子代的关系。你可以用颜色或者字号试一下(一道下划线应该是不能打断的,除非你画两道)——p>a 无法改变属性,p>span>a 才可以。
2016-09-19 回复 有任何疑惑可以回复我~
#8

7779君3862444 提问者 回复 闻好

嗯 确实 我看错了 我以为最佳答案写的是<span>..<span>.</span>..<span> 所以才有了后来的理解 原来真正的最佳答案在你这 谢谢谢你
2016-09-19 回复 有任何疑惑可以回复我~
#9

7779君3862444 提问者 回复 xx_千寻

呀。看了底下闻好同学的话我才真正理解了 你的活得是对的,我刚才一直理解错了
2016-09-19 回复 有任何疑惑可以回复我~
#10

7779君3862444 提问者 回复 闻好

但是那之前学习的子选择器的真正作用在哪里呢
2016-09-19 回复 有任何疑惑可以回复我~
#11

xx_千寻 回复 7779君3862444 提问者

Fine.RyanStark4010381 ,闻好和我都是一个意思,表达方式不一样。最主要的是,你想通了就好。
2016-09-19 回复 有任何疑惑可以回复我~
#12

闻好 回复 7779君3862444 提问者

写了个小代码,这里字数限制,我就放在回答里啦。
2016-09-19 回复 有任何疑惑可以回复我~
查看9条回复

你选择了p下面的span标签设置它的下划线 当然就是span里面的全都有下划线了


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

7779君3862444 提问者

我写子选择器的意义不就是让他作用于第一代子元素么,span算作第一代子元素,但是span内的a元素应该算是第二代子元素啊,为什么a元素里的文字也有下划线啊。我在纠结这个问提。 是我那里的逻辑出问题了么?
2016-09-19 回复 有任何疑惑可以回复我~
#2

RyanStark4010381 回复 7779君3862444 提问者

你的a标签在span里面 属于span影响的范围
2016-09-19 回复 有任何疑惑可以回复我~
#3

7779君3862444 提问者

那子选择器的作用完全没发挥啊
2016-09-19 回复 有任何疑惑可以回复我~
#4

RyanStark4010381 回复 7779君3862444 提问者

子选择器的意思是只选择它直接子类的选择器,而它内部的相同类型的选择器不会被选择到,如果你在span内部再加一个span你会发现内部的span不会变化
2016-09-19 回复 有任何疑惑可以回复我~
#5

7779君3862444 提问者 回复 RyanStark4010381

噢噢噢噢 茅塞顿开 谢谢你
2016-09-19 回复 有任何疑惑可以回复我~
查看2条回复

举报

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

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

进入课程

关于子选择器不能实现的问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号