0

ここで私のスタイルシートで本当に混乱しています。シートに特定のリンク スタイルがたくさんありますが、Chrome Dev Tools または Firebug でページをチェックすると、何らかの理由でそのうちの 1 つが別のものによって上書きされます。!important のケースをいじくり回して、ゆっくりと私のコードを完全にひどいものにしていることに気づいた後、それらをすべて削除し、リンクスタイルを整理して、適切な場所にすべての適切なスタイルを配置せずに取得する方法を見つけようとしています。オーバーライドされます。

基本的に私はそうしています:

.newlinks a {
some styling}

.dl a {
some styling}

.abclink a {
some styling}

そして、.newlinks は「.abclink a」から「何らかのスタイリング」を取得しています。クラスに「p」などのような特定の名前ではなく、特定の名前がある場合、なぜこれが起こるのか、私は本当に混乱しています。どんな説明でも役に立ちます!ありがとうございました!

編集:これがhtmlの順序です

<div class="newlinks"><a href="#"></a></div>
more of the page..
<div class="abclink"><a href="#"></a></div>
<div class="dl"><a href="#"></a></div>

必要に応じてより長いコードを投稿することもできますが、注文や言葉遣いなどの一般的な問題かもしれないと思っただけです。

editit: ここでは、jfiddle 内の関連する css/html です

http://jsfiddle.net/Ub6er/

jsfiddleでわかるように、「underrighttext」のリンクは.dlからスタイルを取得しています:(

4

1 に答える 1

3

underrighttextのようにスタイルされている理由はdl、CSS を次のように宣言したためですdl

.dl a, a:active, a:visited {
    ...
}

JSFiddle からコピーして貼り付けたこのセレクターは、 all aindlだけでなく、all a:active andにも適用されますa:visiteda:activeの中身だけじゃないdl

アクティブ状態と訪問済み状態のセレクターを次のように修正する必要があります。

.dl a, .dl a:active, .dl a:visited { ... }

現在、アクティブなリンクと訪問済みのリンクは、ブラウザによって最後に解析されたスタイルでスタイリングされています。

jsfiddleを正しい CSS セレクターで更新しました。これで、期待どおりに動作するはずです。

于 2013-06-16T05:43:34.593 に答える