1

たとえば、私がこのHTMLを持っているとしましょう:

<ul id="nav">
  <li>one</li>
  <li id="my_item">two</li>
  <li>three</li>
  <li>four</li>
</ul>

そしてCSS:

#nav li {
  margin-bottom:10px;
}

#nav #my_item {
  margin-bottom:30px;
}

#my_item最後のセレクターに使用できないのはなぜですか?

4

3 に答える 3

5

CSSは、特異性と呼ばれる概念を使用して、どのルールがどの要素に適用されるかを決定するためです。

  • 1 ID+1タグは1IDよりも具体的です
  • 2つのIDは、1つのID+1つのタグよりも具体的です

どのルールが優先されるかを確認するときは、ここのリストを下に移動して、最初に適用されるルールで停止します

  1. インラインスタイルは、非インラインスタイルよりも優れています。
  2. 仕様にIDが多いスタイルは、IDが少ないスタイルよりも優れています。
  3. 仕様にクラス/属性が多いスタイルは、少ないスタイルよりも優れています。
  4. 仕様にタグが多いスタイルは、タグが少ないスタイルよりも優れています。
  5. 他のすべてが等しい場合、仕様の後半にあるルールは、前に来るルールよりも優先されます。
于 2012-08-11T22:36:12.823 に答える
0

特異性のため: 最初のルールの特異性は 101 です#my_itemが、特異性は 100 しかあり!importantません。2 つのルールが同じ特異性を持つ場合、「最新」のルールが優先されます。

于 2012-08-11T22:37:12.417 に答える
0

「最後のセレクターに #my_item を使用できないのはなぜですか?」専門家から(特異性について)回答を得ていますが、代わりに次のようにすることもできます

#my_item {
    margin-bottom:30px !important;
}​

デモ

于 2012-08-11T22:42:46.497 に答える