私は同様のジレンマを抱えていましたが、ここで私はそれをどのように処理しましたか?私の解決策は、他の人が適切に一致させるために、より具体的なセレクタを使用することに関して投稿したものと似ています。
次のようにネストされたスパンがあり、スタイルをカスケードしたくないとします。言い換えれば
<span class="boldText">
some bolded text
<span class="italicText">some italic text</span>
</span>
は、私はそれが「いくつかの太字テキスト一部斜体」ではなく「いくつかの太字テキストいくつかのイタリック体」(およびその逆)として表示します。ネストされた子に対してこれらのスタイルをクリアするように特定のセレクタを設定することにより、これは以下のように達成される。
span span {
font-weight:normal; /*clear bold style from 'cascading' by specifying it*/
font-style:normal; /*clear italic style from 'cascading' by specifying it*/
}
.boldText {
font-weight:bold;
}
.italicText {
font-style:italic;
}
「スパンスパン」セレクタは、ネストされたスパンが戻って「ノーマル」アンスタイルの状態にそれらを設定し、親のスパンから、通常のカスケード接続のスタイルを上書きするために必要なものに設定されたスタイルを持っていることを保証することができます。次に、スパン自体の特定のboldTextクラスまたはitalicTextクラスが適用され、より具体的なセレクタであるため、そのスパンの内容を太字または斜体(またはその両方)にします。
ここでの利便性は、子供にカスケードする親のフォント書式スタイルについて心配する必要がなくなったことです。適切な書式設定クラスを任意のスパンに追加するだけで、そのクラスのみを適用することができます。
".clearBold"クラスと ".clearItalic"クラスをネストしたすべてのスパンに簡単に追加できましたが、これはより洗練され、アプリケーションでコードが少なくなりました。
私は、CSSであなたはそれをどうにかハックする必要があるので、列のレイアウトのテーブルが間違っている...それは単なる毒を選択する問題です。 –
プレゼンテーションのためにプレゼンテーションツールを使用する場所を選択し、存在しないデータ関係は要求しません。 – Quentin
私はあなたのソリューションを受け入れることができました。時にはHTMLを十分にコントロールすることができず、DOM内の位置によって要素を間接的に制御する必要があることがあるので、クロスブラウザー選択を行うより良い方法があることを期待していました。 –