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

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选择器起作用):

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

显示结果就是(前面的css选择器起作用):

为什么?多了一层优先级就高一些吗?


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

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


ID、类、元素他们的优先级别是不一样的。

你可以看看这篇文章应该能解决你的问题。

CSS学习笔记(四) CSS优先级

【热门文章】
【热门文章】