css中后代选择器有三层标签的优先级比两层的高?

<html>
<head>
<style type="text/css">
ul em {color:red; font-weight:bold;}
ol em{color:green}
</style>
</head>

<body>
<ul>
  <li>List item 1
    <ol>
      <li>List item 1-1</li>
      <li>List item 1-2</li>
      <li>List item 1-3
        <ol>
          <li>List item 1-3-1</li>
          <li>List item <em>1-3-2</em></li>
          <li>List item 1-3-3</li>
        </ol>
      </li>
      <li>List item 1-4</li>
    </ol>
  </li>
  <li>List item 2</li>
  <li>List item 3</li>
</ul>
</body>
</html>

显示的结果为(后定义的css选择器起作用):
clipboard.png

而把style里面的ul em {color:red; font-weight:bold;}后代选择器改为下面:
ul ol em {color:red; font-weight:bold;}(多一层ol标签)

显示结果就是(前面的css选择器起作用):
clipboard.png
为什么?多了一层优先级就高一些吗?

阅读 4.5k
2 个回答

CSS 优先级法则:
A 选择器都有一个权值,权值越大越优先;
B 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;
C 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式;
D 继承的CSS 样式不如后来指定的CSS 样式;
E 在同一组属性设置中标有“!important”规则的优先级最大;

简单来说 css选择器写得越详细 优先级越高

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏