zaxlctjs 2015-08-09 02:56 采纳率: 0%
浏览 1576
已采纳

CSS优先级的小问题,谢谢了

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<style>
    .main{width:200px; height:200px; background:black;}
    .main ul li{background:white;}
    .on{background:blue;}
</style>
<body>
<div class="main">
    <ul>
        <li class="on">第一行文字的颜色为什么不是blue</li>
        <li>第一行文字</li>
        <li>第一行文字</li>
        <li>第一行文字</li>
    </ul>
</div>
</body>
</html>

第一行文字的颜色为什么不是blue?
明明给第一行的li定义class了啊

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<style>
    .main{width:200px; height:200px; background:black;}
    .main ul li{background:white;}
    #on{background:blue;}
</style>
<body>
<div class="main">
    <ul>
        <li id="on">第一行文字的颜色是blue了</li>
        <li>第一行文字</li>
        <li>第一行文字</li>
        <li>第一行文字</li>
    </ul>
</div>
</body>
</html>

用id选择器就好了

难道.main ul li 的优先级大于 class='on' ??

  • 写回答

3条回答

  • Candan 2015-08-09 04:31
    关注

    从CSS代码存放位置看权重优先级:内嵌样式 > 内部样式表 > 外联样式表。其实这个基本可以忽视之,大部分情况下CSS代码都是使用外联样式表。

    从样式选择器看权重优先级:important > 内嵌样式 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 继承 > 通配符。

    important的权重为1,0,0,0
    ID的权重为0,1,0,0
    类的权重为0,0,1,0
    标签的权重为0,0,0,1
    伪类的权重为0,0,1,0
    属性的权重为0,0,1,0
    伪对象的权重为0,0,0,1
    通配符的权重为0,0,0,0
    (A) .main ul li{background:white;} /*0,0,1,2*/ /*= 12*/
    (B) .on{background:blue;} /*0,0,1,0*/ /*= 10*/
    (C) #on{background:blue;} /*0,1,0,0*/ /*= 100*/
    所以优先级:C>A>B

    参考文章如下:
    1、http://www.cnblogs.com/52css/archive/2012/06/07/2540550.html
    http://wenku.baidu.com/link?url=SxULPRpoqoAEdTSuKxxlJqCDecVogWdRc3Hp_RxFkht4tsIi_mve1omPaxA4QQ4T1jUop8Ms7WPx0trA6jrf2SCVpT47beSmiPoV_H5IDb_

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?