親>子セレクターを使用して要素を対象とするCSSをいくつか作成しました。特にテーブル用なので、このようにヘッダーとフッターに特定のスタイルを適用できます
table > thead > tr > th ...
table > tbody > tr > td ...
//there are other uses in the css as well
IE6を除いて、これはうまく機能します。IE6 をサポートするためにこの css をアンファクタリングする最善の方法は何ですか?
親>子セレクターを使用して要素を対象とするCSSをいくつか作成しました。特にテーブル用なので、このようにヘッダーとフッターに特定のスタイルを適用できます
table > thead > tr > th ...
table > tbody > tr > td ...
//there are other uses in the css as well
IE6を除いて、これはうまく機能します。IE6 をサポートするためにこの css をアンファクタリングする最善の方法は何ですか?
E > F を選択したい場合は、
E F {
set-some-style: value;
}
E * F {
unset-some-style: 0;
}
ただ、 > セレクターがたくさんある場合はうまくいきません。
詳細: http://www.sitepoint.com/blogs/2005/06/20/erics-universal-child-selector/
通常、「>」を削除するだけで機能します。それは、CSS と HTML がどのように記述されているかの問題です。私はそれを試してみます。
>
IE6 はセレクターをサポートしていません。
場合によっては、代わりにスペース セレクターに置き換えて、ほぼ同じ結果を得ることができますが、これが常に機能するとは限りません。が必要な場合もあります>
。
私の最初のアドバイスは、IE6 のサポートをやめることです。過去数年間で残りの市場シェアを事実上すべて失ったため、サポートする必要はまったくありません。
IE6 をサポートする必要があり、セレクターを使用したい場合>
、唯一のオプションは Javascript ハックです。
あなたを助けるかもしれない2つのハックがあります:
Dean Edwards の IE7.js - これは Javascript を使用して、できるだけ多くの CSS および JS 機能を IE の古いバージョン (IE6 を含む) に移植しようとする試みです。それはかなり良い仕事をしており、何年も前から存在しています。
Selectivizr - 古いバージョンの IE で最新の CSS セレクターを完全にサポートすることを目的とした JS ライブラリです。jQuery などの別のライブラリも使用する必要があります。これは、そのライブラリからセレクター エンジンにフックするためです。これは、サポートされているライブラリのいずれかを既に使用している場合、コードへの小さくて効率的な追加であることを意味します。
JavaScript を使用してそれらをターゲットにすることもできますが、CSS によって行われるべき何かのために javaScript が必要になるため、それは実際の解決策とは言えません。HTML を変更して特定のクラスを持つこともできますが、それは HTML を変更することを意味します。「良い」解決策があるとは本当に思いません。これを処理しなければならないのが私である場合、または HTML または HTML 作成スクリプト使用クラスにアクセスできる場合は、おそらく JavaScript を使用してすべてをハックするでしょう。それらの特定の子供たち。