Pourquoi mes propriétés CSS sont-elles remplacées / ignorées?

Je vais avoir quelques problèmes avec le CSS "hiérarchie" (pas sûr si c'est bien de l'appeler c'est une hiérarchie). Je suis en train de style ci-dessous peu de code 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>

Depuis la section#modifications de contenu sur chaque page que j'ai, j'ai voulu maintenir la cohérence des styles dans tous les cas, j'ai écrit quelques "global" des règles 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;
}

Je voulais style HTML à l'intérieur d'un ul.posts-list différemment, j'ai donc écrit ces règles.

li.post-item > * {
  margin: 0px;
}

.item-description {
  color: #FFF;
}

.item-meta {
  color: #666;
}

Cependant, j'ai rencontré quelques problèmes. Ici est la façon dont google Chrome est rendu le CSS:

Pourquoi mes propriétés CSS sont-elles remplacées /ignorées?

Pour une raison quelconque, les règles #content p, #content li sont impérieuses mes règles pour .item-description et .item-meta. Mon impression était que la classe/id noms sont considérés comme spécifiques et donc une plus grande priorité. Cependant, il semble que j'ai une mauvaise compréhension de la CSS à l'œuvre. Ce que je fais mal?

Edit: Aussi, où puis-je lire plus sur la façon dont cette hiérarchie des œuvres?

source d'informationauteur kibibyte