2009-06-17 7 views
0

私はDNN環境で作業しています。このサイトでは、すべてのサイトが読み込む既定のスタイルシートが擬似クラスのスタイルを設定しています。私はデフォルトのスタイルシートを編集することができますが、これは在庫であり、すべてのアップグレードが付属しているので、私はそれをそのままにしてスキンレベルでスタイルを上書きすることをお勧めします。擬似クラスにはどのくらいの重みがありますか?

これらの疑似クラスをすべて取得してスタンドアロン要素のリスニングを開始するソリューションを知っている人はいますか?

A:link 
{ 
    text-decoration: none; 
    color: #003366; 
} 

A:visited 
{ 
    text-decoration: none; 
    color: #003366; 
} 

A:hover 
{ 
    text-decoration: underline; 
    color: #ff0000; 
} 

A:active 
{ 
    text-decoration: none; 
    color: #003366; 
} 

はまた、a:hover {}常に関係なくselectorがいかに強いselector a {}を打ち負かしていないのでしょうか?


EDIT:!私が使用することを望んでいないよ 重要な私はどこでも重要なを使用する必要があります、と私は、ドキュメントに任意のスタイルを埋め込むにしたくないと。

私は、リンク{text-decoration:none;}は常に同じ擬似クラスでオーバーライドされることを前提としています。私はすべてのタグに常に擬似クラスを定義しなければならないと考えています。

答えて

2

宣言をHTML自体に<style>タグ内に含めると、外部スタイルシートに設定されているスタイルを上書きします。

もう1つの解決策は、既存のCSSを上書きするための2番目のCSSドキュメントを作成することです。の後にこのCSSファイルを含めて、既存のCSSファイル(IE 6互換用)を含めるようにしてください。次に、オーバーライドするすべてのスタイルに!importantタグを使用します。

詳細については、CSS cascadingに関するW3仕様のセクションを参照してください。

編集: 2番目の質問に答えるにはa:hover{}selector a{}を打ち負かすが、selector a:hover{}a:hover{}を打ち負かすだろう。

+0

デフォルトでは:active、:linkなどが追加されていることを考慮すると、すべての擬似クラスをオーバーライドするたびに定義する必要があります。 –

+0

または!importantを使用してください – tj111

0

また、a:hover {}は、セレクタがどれほど強力なセレクタであっても、常にセレクタa {}をビートしますか?

これは、依存する属性が設定されている場合に、より具体的なセレクタが勝つことになります。さもなければ、それらは相加的になります。 (もちろん、!importantで作業している場合を除き)

0

first-childと:last-childを使用して読み込み時間をテストしました。私のローカルマシン上では、それぞれ8ミリ秒程度の差があるように見えましたが、使用量が増えるほどプラスになるわけではありません。

関連する問題