Mam pewne problemy z "hierarchią" CSS (nie jestem pewien, czy można nazwać ją hierarchią). Próbuję narysować poniższy bit HTML.Dlaczego moje właściwości CSS są nadpisywane/ignorowane?
<body>
<section id="content">
<article>
<ul class="posts-list">
<li class="post-item">
<h2>[post title]</h2>
<p class="item-description">...</p>
<p class="item-meta">...</p>
</li>
...
</ul>
</article>
</section>
</body>
Ponieważ zmiany treści odcinek # na każdej stronie mam, chciałam utrzymać spójne style we wszystkich z nich, więc napisałem kilka „globalne” CSS.
#content {
color: #000;
margin-left: 300px;
max-width: 620px;
padding: 0px 10px;
position: relative;
}
#content p,
#content li {
color: #111;
font: 16px/24px serif;
}
Chciałem stylu HTML w ul.posts-list
inaczej, więc napisałem tych zasad.
li.post-item > * {
margin: 0px;
}
.item-description {
color: #FFF;
}
.item-meta {
color: #666;
}
Wystąpiły jednak pewne problemy. Oto jak Chrome renderowania CSS:
Z jakiegoś powodu, przepisy są nadrzędne #content p, #content li
moje zasady .item-description
i .item-meta
. Mam wrażenie, że nazwy klasy/id są uważane za konkretne, a zatem o wyższym priorytecie. Wydaje się jednak, że nie rozumiem, jak działa CSS. Co ja tu robię źle?
Edycja: Ponadto, gdzie mogę przeczytać więcej o tym, jak działa ta hierarchia?
+ 1'd dla kodu, ale kilka linków nie może zranić! [oficjalna specyfikacja dotycząca specyfiki] (http://www.w3.org/TR/CSS21/cascade.html#specificity) i [przyjazny arkusz do ściągnięcia] (http://www.stuffandnonsense.co.uk/archives/images/ specificitywars-05v2.jpg) – benesch
+1 za przyjazny arkusz do ściągnięcia lub "jak wyjaśnić specyfikację css dla maniaka"! Doskonały! – tibo