1

私は最近CSSについて読んで実験していますが、私が行っているほとんどすべての実験で、この同じ問題が何度も発生しています.

問題は次のとおりです。一般的なルールとしてプロパティを設定します。次に、単一アイテムまたは場合によっては完全に新しいクラスのプロパティを変更しようとします。何らかの理由で、古い (初期ルール) がまだ存在し、新しいクラスは何にも影響を与えていません。

これらの状況で !important を使用すると役立つことはわかっていますが、全体的なロジックを取得するのはまだ困難です。!important なしで機能することもあれば、機能しないこともあります。

私は何が欠けていますか?

これは、!important として適用されない限り、「nomargins」クラスが機能しない例です。 http://cssdeck.com/labs/9xevau8p

4

3 に答える 3

6

特異性を調べる必要があります。

あなたの問題は、#main liより具体的です.nomargins

.nomargins必要に応じて、このように具体性を追加できます#main .nomargins

于 2013-02-07T14:51:30.767 に答える
1

それは長くて複雑な話です。基本的に、ブラウザは次のことをチェックします。-スタイルがどこから来ているか(作成者スタイルシート、ユーザースタイルシート、インライン宣言など)-問題のルールがどの程度具体的か(IDに影響するルールがクラスに影響するルールよりも優先される)-ルールの順序(新しいルールが古いルールに先行します)-そして他の多くのもの。言われているように、ほとんどの場合、問題は特異性です。より詳細な(そして長い)答えについては、このリンクを確認してください: http ://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/

于 2013-02-07T14:53:18.463 に答える
1

このように要素をネスト#somediv ul li aすると、ここで指定されたプロパティが優先されます。これには多くの問題がありましたが、それを知った後は、解決策を見つけるのは非常に簡単です。レンダリングの理解に役立つ記事もここにありますcss

于 2013-02-07T14:52:07.727 に答える