css子代选择器的一个问题

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>子选择符</title>
<style type="text/css">
.food>li{border:1px solid red;}/*添加边框样式(粗细为1px, 颜色为红色的实线)*/

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

#就是我把ul的那个class删掉,然后选择器那里直接ul>li这样子为什么不可以#

可能出现混乱,有两个ul li 的嵌套

ul>li表示ul下的直接li元素都使用此样式,你的按个是foot样式下的直接子元素li会有此样式,效果肯定不一样
foot那个就是2个li有边框

ul的话是2个ul下的li都有边框,所以所有li都有边框

应该是出现混乱了吧,正常情况是不会这样用的,用bootstrap的分隔符会好看点

ul里面还有ul,子代选择器,匹配选择元素下的所有子元素,设置class,相当于将指定下的子元素全部匹配,取消以后,浏览器不知道匹配谁了。

你可以从最外层开始 body >ul >li

有两个ul li 的嵌套