我在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:
![Chrome 渲染我的 CSS 的截图](https://istack.dev59.com/NSQzG.webp)
#content p, #content li
覆盖了我的 .item-description
和 .item-meta
规则。我印象中类名 / ID 名被认为是特定的,因此具有更高的优先级。然而,似乎我对 CSS 工作方式的理解存在误解。我做错了什么?编辑:我在哪里可以阅读更多关于这种层次结构的知识?