2012-03-17 17 views
0

divを拡張しようとしています。しかし、すべての作品は '高さ'のプロパティを受け入れる。私はこのクラスを追加するためにjQueryのaddClass関数を使用します。jQuery addClass高さの問題

.expandHighlight 
{ 
    height:300px; 
    border-color:rgba(48,110,158,.75)!important; 
    box-shadow:0 0 5px 2px rgba(48,110,158,.5); 
} 

jQuery関数を使用します。

$('#expand').click(function() 
    { 
    $('#buttonField').css('visibility','hidden'); 
    $('#expand').addClass("expandHighlight"); 
    }); 

また、拡張しようとしているdiv imにはcssがあります。

#expand 
{ 
    background-color:#F9F9F9;border-radius:3px; 
    border:1px solid #C0C0C0; 
    width:500px; 
    height:66px; 
    border-radius:2px; 
} 
+0

ID-セレクタはシャープで始まることがあります:ここで

.expandHighlight { min-height:300px; .... } 

が動作するコードのデモです:あなたは、クラスは次のようになりますので、代わりに通常の高さの分の高さを使用する必要があります ' #expand'。 –

答えて

2

クラスを追加すると、同じオブジェクトに関連する2つのCSSルールが高さに割り当てられます。つまり、CSSの特定ルールによって、どのCSSルールが適用されるかが決定されます。

この場合、#expandルールは.expandHighlightルールよりも特異性が高いので勝ちます。

#expand.expandHighlight { 
    height:300px; 
    border-color:rgba(48,110,158,.75)!important; 
    box-shadow:0 0 5px 2px rgba(48,110,158,.5); 
} 

をそして、それはより多くの特異性を持つことになりますし、expandHighlightクラスが割り当てられたときに獲得します:

あなたはこのよう.expandHighlightルールに多くの特異性を追加することによってこの問題を解決することができます。

あなたはCSSの特異性とその仕組みについてもっと読むことができますhere

<div id="expand" class="expandNormal"></div> 

.expandNormal { 
    height: 500px; 
    border:1px solid #C0C0C0; 
    width:500px; 
} 

.expandHighlight { 
    height:300px; 
    border-color:rgba(48,110,158,.75)!important; 
    box-shadow:0 0 5px 2px rgba(48,110,158,.5); 
} 

あなたがのコースにclass="expandNormal"を追加します。あなたはまた、ルールの両方が唯一のクラスで作ると、このような通常の高さのルールの後expandHighlightルールを置くことによってそれを修正することができ


#expandオブジェクトであるため、そのクラスが存在する場合にのみ、expandHighlightルールによってオーバーライドされるデフォルトルールを取得します。

+0

ありがとうございました!それはうまくいった。私はCSSの重要なルールを学びました。どうもありがとう! – Ali

1

#idセレクタは、.classセレクタよりspecificity以上を有します。

.classセレクターを変更すると、より具体性が高くなります。