css – 样式的顺序是否重要?

下面是我的标记。当我将鼠标移到超链接上时,它们会被下划线并变红。但是如果我交换最后两条规则的顺序,超链接仍然会被下划线,但是它们的颜色变为黑色而不是红色。这是设计吗?如果是,规则如何适用?

谢谢!
康斯坦丁

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>
    <style type="text/css" media="all">
        .menu a
        {
            text-decoration: none;
        }
        .menu li:hover a
        {
            color: black;
        }
        .menu li a:hover
        {
            color: red;
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <div class="menu">
        <ul>
            <li><a href="#">item0</a></li>
            <li><a href="#">item1</a></li>
        </ul>
    </div>
</body>
</html>

解决方法

如果规则在特定性上是相等的(在这种情况下,它们是),则单个规则将以CSS中定义的顺序被覆盖,因此在您的示例中,红色获胜是因为它在CSS定义中出现。其他情况也适用同样的规则,例如:
<div class="red green">

哪些胜利?

.green { color: green; }
.red { color: red; }

.red在这里,在class属性中的顺序并不重要,所有重要的是样式在CSS本身中定义的顺序。

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效