Почему стиль гиперссылки не каскадируется в CSS? - PullRequest
5 голосов
/ 08 октября 2010

В следующем HTML / CSS, почему цвет ссылки зеленый, а не синий, то есть почему "p.description" переопределяет "#nav", а "p.description a" не переопределяет "#nav a"?

alt text

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<style type="text/css">
    #nav {
        color: black;   
    }
    #nav a {
        color: green;
    }
    p.description {
        color:red;
    }
    p.description a {
        color:blue;
    }
</style>
</head>
<body>
    <div id="nav">
        <p class="description">This is a test and <a href="#">this is a link</a>.</p>
    </div>
</body>
</html>

Ответы [ 2 ]

13 голосов
/ 08 октября 2010

Поскольку селектор идентификатора плюс селектор типа более конкретен, чем два селектора типа и селектор класса.См. спецификацию на специфику .

Таким образом, он работает каскадно, но правила для порядка, в котором происходит каскад, не соответствуют вашим ожиданиям.

0 голосов
/ 08 октября 2010

Зеленый, потому что правило css #nav a {color: green;} его определяет.

Чтобы сделать его синим, сделайте это #nav a {color: blue;}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...