次の属性がある場合:
html {
text-decoration: none !important;
}
しかし、「ラインスルー」などのテキスト装飾を 1 つ有効にしたかったのです...
これを行うことは可能ですか?どのように?
編集:これがどの html に適用されているかわかりません-ブラウザプラグインを介して動的です...
ありがとう!
次のように、特定の要素でこの属性を指定できます
.decorated {
text-decoration: line-through;
}
このように、 のtext-decoration
値はnone
継承されません。
編集:
http://jsfiddle.net/mGGnc/はこれを示しています。もちろん、decorated
クラスがHTML
要素に追加された場合、これは機能しません。この場合、プロパティ値の継承がないためです。CSS2仕様はこれを説明しています。
要素のクラスを個別に作成して、要素inherited
から取得しないようにする場合reset css
このように簡単に目的を達成できます:-
html {
text-decoration: none;
}
.anchor a {
text-decoration:line-through;
color:red;
}
ルール (属性html { text-decoration: none !important; }
ではない) は、別のスタイル シートがルート要素 (要素) にプロパティを設定するかなり架空のケースを除いて、影響を与えませんhtml
。一般的な誤解に反して、text-decoration
要素は継承されません。ただし、以外の値に設定するとnone
、その効果はある意味では継承に似ています。
回答へのコメントで、「これは、すべての装飾を削除するテキスト装飾リセット css です-保持したい 1 つまたは 2 つを除いて-ラインスルーのように」. いつものように、一般的な CSS スタイルシートのリセットは、問題を解決するどころか、問題を引き起こす傾向があります。すべての要素の設定をオーバーライドするには、ユニバーサル セレクター(またはすべての既知および未知の要素のリスト)text-decoration
を使用する必要があります。*
ただし、プロパティの定義方法により、一部の値を使用する設定をオーバーライドし、他の値をオーバーライドしないようにすることはできません。その値は、none
それぞれが「装飾」を指定するか、スペースで区切られたキーワードのリストです。そのため、プロパティを特定の値に設定せずに、これらのキーワードの 1 つを否定する方法はありません。