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

为什么我在frist子选择器中输入CSC代码以后,所有的字体都变成了红色,不是应该只作用在水果?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>后代选择器</title>
<style type="text/css">
.first span{color:red;}

.food>li{
    border:1px solid red;/*添加边框样式(粗细为1px, 颜色为红色的实线)*/ 
}
</style>
</head>
<body>
 <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>
<!--下面是本小节任务代码-->
<ul class="food">
    <li>水果
        <ul>
         <li>香蕉</li>
            <li>苹果</li>
            <li>梨</li>
        </ul>
    </li>
    <li>蔬菜
     <ul>
         <li>白菜</li>
            <li>油菜</li>
            <li>卷心菜</li>
        </ul>
    </li>
</ul>

</body>
</html>

正在回答

9 回答

子选择器是作用在元素的第一代后代上的,本题中第一代后代<li>是从水果前开始到梨后结束,再从蔬菜前开始卷心菜后结束。 

<li>水果
        <ul>
         <li>香蕉</li>
            <li>苹果</li>
            <li>梨</li>
        </ul>
    </li>

<li>蔬菜
     <ul>
         <li>白菜</li>
            <li>油菜</li>
            <li>卷心菜</li>
        </ul>
   
</li>

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

慕姐3102452 提问者

第一代子元素用什么定义吗?怎样区分第一代子元素和其他后代呢
2016-03-07 回复 有任何疑惑可以回复我~
#2

慕斯2996396 回复 慕姐3102452 提问者

直接在元素中出现的是第一代子元素,在子元素中嵌套出现的是其他后代。比如香蕉前后的<li>就是在水果的<li>中嵌套的第二代后代。
2016-03-07 回复 有任何疑惑可以回复我~

<!DOCTYPE HTML>

<html>

<head>

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

<title>后代选择器</title>

<style type="text/css">

.first span{color:red;}

.food>li{

   color:red;/*添加边框样式(粗细为1px, 颜色为红色的实线)*/ 

}

</style>

</head>

<body>

 <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>

<!--下面是本小节任务代码-->

<ul class="food">

    <li>水果

        <ul>

         <li>香蕉</li>

            <li>苹果</li>

            <li>梨</li>

        </ul>

    </li>

    <li>蔬菜

     <ul>

         <li>白菜</li>

            <li>油菜</li>

            <li>卷心菜</li>

        </ul>

    </li>

</ul>

</body>

</html>

你是想这样写 然后说无序表那里都变红了?

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

慕姐3102452 提问者

是的,把代码粘错了
2016-03-07 回复 有任何疑惑可以回复我~
frist子选择器中输入CSC代码以后,不是所有的字体是红色,而是只是作用于span(胆小如鼠).first span{color:red;}


0 回复 有任何疑惑可以回复我~
<style type="text/css">
.first span{color:red;}
.food>li{
    border:1px solid red;/*添加边框样式(粗细为1px, 颜色为红色的实线)*/ 
}
</style>

简单分析一下你的css样式。

  1. first类下<span>标签,字体变红色。

    效果:【胆小如鼠】变红色字体

  2. food类下第一级<li>标签,添加粗细为1px, 颜色为红色的实线。

    效果:两个边框,分别为【水果】【蔬菜】

不知道你想要的效果是什么,题目说的也不是很清楚,可以追问

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

.first span这是两个选择器而不是一个选择器,也就是分组选择符里的内容。

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

追求前端开发的固执狂

= =搞错了,是后代选择符
2016-03-07 回复 有任何疑惑可以回复我~
#2

_未染流年_

包含(后代)选择器 包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码: .first span{color:red;} 这行代码会使第一段文字内容中的“胆小如鼠”字体颜色变为红色。 请注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。 总结:>作用于元素的第一代后代,空格作用于元素的所有后代。
2016-03-07 回复 有任何疑惑可以回复我~
#3

慕姐3102452 提问者

.food>li{color:red} 主要想问在这段代码中,子选择器的第一代不是“水果”吗?为何我把颜色设置为红色,水果下面的后代也变成了红色呢?
2016-03-07 回复 有任何疑惑可以回复我~

不太明白你的意思?fist选择器中的color只是在span标签内改变颜色为红色,跟水果没有关系啊?

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

慕姐3102452 提问者

.food>li{ border:1px solid red;/*添加边框样式(粗细为1px, 颜色为红色的实线)*/ } 把这个代码该成.food>li{color:red;}以后不是只应该作用于第一代“水果”,为何所有的都变成红色呢?
2016-03-07 回复 有任何疑惑可以回复我~

问题问的不清楚,.first上的样式和.food下的水果有什么关系

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

可以把原题发出来吗。。看不懂你的问题

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

可以把原题发出来吗。。看不懂你的问题

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

举报

0/150
提交
取消

为什么我在frist子选择器中输入CSC代码以后,所有的字体都变成了红色,不是应该只作用在水果?

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