我对 CSS“层次结构”有一些问题(不确定将其称为层次结构是否合适)。我正在尝试为下面的 HTML 设置样式。
<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>
由于我拥有的每个页面上的 section#content 都会发生变化,因此我想在所有页面上保持一致的样式,因此我编写了一些“全局”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;
}
我想以ul.posts-list
不同的方式设置 HTML 样式,所以我编写了这些规则。
li.post-item > * {
margin: 0px;
}
.item-description {
color: #FFF;
}
.item-meta {
color: #666;
}
但是,我遇到了一些问题。下面是 Chrome 渲染 CSS 的方式:
出于某种原因,这些规则#content p, #content li
覆盖了我对.item-description
and的规则.item-meta
。我的印象是类/id 名称被认为是特定的,因此具有更高的优先级。但是,我似乎对 CSS 的工作原理有误解。我在这里做错了什么?
编辑:另外,我在哪里可以阅读有关此层次结构如何工作的更多信息?