2011-01-04 3 views
7

私はすべてのdivにスタイルを適用しようとしています。私はこれをやっているが、それは動作しません:特定のものを除き、すべてのdivにスタイルを適用してください

#toolbar div[class~="olControlNavigationHistory"]{ 
    float: left; 
    background-repeat: no-repeat; 
    margin: 2px 12px 2px 12px; 
} 

は、だから私は「olControlNavigationHistory」と呼ばれるクラスを持つdiv要素を除き#toolbar内のすべてのdiv要素にこのスタイルを適用する必要があります。

どうすればいいですか?これは可能ですか?

ありがとうございます!

答えて

11

ただ、最初にすべてのdiv要素にルールを適用する:

#toolbar div { 
    float: left; 
    background-repeat: no-repeat; 
    margin: 2px 12px 2px 12px; 
} 

を次にあなたが特定のケースの値をゼロにする必要があります。もちろん

#toolbar div.olControlNavigationHistor { 
    float: none; 
    background-repeat: repeat; 
    margin: 0; 
} 

これは、プロパティ値と仮定し特定のdivが適用された最初のルールがないと、各プロパティのデフォルト値(margin: 0およびfloat: noneなど)が返されます。

編集: CSS3がサポートされているときは、元のルールを#toolbar div:not(.olControlNavigationHistory)として書き直すこともできます。これは、正しくエレガントに動作します。

+0

感謝マーカスに掲載された、あなたの提案は非常に有用でした。私は私の問題を解決しました:) –

+8

@ user552669レコード '〜='は、 "not equal" - [w3schools](http://www.w3schools.com/css/css_attribute_selectors.asp)ではなく、含まれていることを意味します。しかし、将来CSS3がサポートされるときには、元のルールを '#toolbar div:not(.olControlNavigationHistory)'として書き直すこともできます。これは、正しくエレガントに動作します。 –

関連する問題