Tengo algunos problemas con la "jerarquía" de CSS (no estoy seguro de si es correcto llamarlo una jerarquía). Estoy tratando de estilo el siguiente bit de HTML.¿Por qué mis propiedades CSS están siendo anuladas/ignoradas?
<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>
Dado que los cambios sección # contenido en todas las páginas que tengo, querido mantener estilos consistentes a través de todos ellos, así que escribió algunas reglas CSS "globales".
#content {
color: #000;
margin-left: 300px;
max-width: 620px;
padding: 0px 10px;
position: relative;
}
#content p,
#content li {
color: #111;
font: 16px/24px serif;
}
yo quería HTML dentro de un estilo ul.posts-list
diferente, por lo que escribió estas reglas.
li.post-item > * {
margin: 0px;
}
.item-description {
color: #FFF;
}
.item-meta {
color: #666;
}
Sin embargo, me encontré con algunos problemas. Aquí es cómo Chrome está prestando la CSS:
Por alguna razón, las normas #content p, #content li
preponderantes con mis reglas para .item-description
y .item-meta
. Mi impresión fue que los nombres de clase/identificación se consideran específicos y, por lo tanto, de mayor prioridad. Sin embargo, parece que tengo un malentendido sobre cómo funciona CSS. ¿Qué estoy haciendo mal aquí?
Editar: Además, ¿dónde puedo obtener más información acerca de cómo funciona esta jerarquía?
+1 en código, pero algunos enlaces no pueden doler. [especificación oficial sobre especificidad] (http://www.w3.org/TR/CSS21/cascade.html#specificity) y [hoja de trucos amistosa] (http://www.stuffandnonsense.co.uk/archives/images/ specificitywars-05v2.jpg) – benesch
+1 para la hoja de trucos amistosa o "cómo explicar la especificidad de CSS a un geek"! ¡Excelente! – tibo