2011-09-13 8 views
0

div内に「チャットバブル」のレンダリングに問題があります。バブルコンテナのCSSルールはIDセレクタである(純粋CSSまたはjQueryの、だから、jQueryの問題ではない)場合には、異なる次いで、レンダリングされるセレクタとしてクラス名を使用して適用されるclass vs idセレクタを使用した場合のレンダリングの差異

See Demo Here

。あなたはクラスセレクタを使用した場合、コンテナの幅はすべてのグラグラ行く、の例から見ることができるようにここで

はCSS

#tweetBox { 
    position: absolute; 
    top: 72px; 
    right: 158px; 
    display: none; 
    margin: 0 0 15px 15px; 
} 
.tweetBox-class { 
    position: absolute; 
    top: 72px; 
    right: 158px; 
    display: none; 
    margin: 0 0 15px 15px; 
} 

です。

なぜIDセレクタVSクラスセレクタを使用するとレンダリングに違いがありますか?

答えて

4

あなたは、スタイルシート内の他のクラスを持っているし、彼らはあなたのJavaScriptコードで自分のコンテナに適用されている:

function sID(message) { 
    var b = $("<div id='tweetBox' />"); 
    $("#header").html("").append(b); 
    b.addClass("triangle-right right"); 
    b.html(message).fadeIn(300).delay(2000).fadeOut(300); 
} 
function sCLASS(message) { 
    var b = $("<div />"); 
    $("#header").html("").append(b); 
    b.addClass("tweetBox-class triangle-right right"); 
    b.html(message).fadeIn(300).delay(2000).fadeOut(300); 
} 

ので、ブラウザは、コンテナをレンダリングする際に考慮にすべてのこれらのクラスを取ることがあります。

IDセレクタを持つルールは、クラスセレクタのみを持つルールをすべてオーバーライドしますが、クラスセレクタを持つルールは最初に適用され、他のクラスより優先されます後であなたのスタイルシートに。

+0

優先度は常にケースID> CLASSですか? – rlemon

+0

@レモン:はい、いつも。 – BoltClock

+0

@minitech:いいえ、それは完全に間違っています。単一のIDセレクタは、任意の数のクラスセレクタよりも具体的です。この仕様では、IDが100ポイント、クラスが10ポイントの価値があるとは言えません。 IDセレクタはID +クラスセレクタよりもあまり具体的ではないことを伝えています。 – BoltClock

関連する問題