3

私は、Wordpress プラグインの作成に使用される PHP クラスの束を作成していますが、他の環境でも使用できます。スクリプトを単独でテストしたところ、すべて問題ないように見えましたが、スクリプト用の WP プラグインを作成したときに、予見していた CSS の競合が発生しました。私は当初、これらを解決するために特異性を使用することを計画していましたが、常に実行できるとは限りません。これはデフォルトの WP テーマにあります。

#content tr td {
    border-top: 1px solid #E7E7E7;
    padding: 6px 24px;
}

パディングなしで td を指定しようとしても、クラスではなく ID をテーブルに追加しない限り機能しません。具体性のために ID を使用するのではなく、すべての CSS プロパティに !important ルールを実装する人気のあるプラグインを見てきました。どれが最高ですか?!important ルールは慎重に使用する必要があることはわかっていますが、同じ ID を持つこのテーブルの複数のインスタンスが存在するため、テーブルに ID を追加することはセマンティクスに反するようです。

ドキュメント言語の ID 属性により、作成者はドキュメント ツリー内の 1 つの要素インスタンスに識別子を割り当てることができます。

http://www.w3.org/TR/CSS2/selector.html#id-selectors

編集: ID を使用して div 内のすべてをラップすることもできますが、#content #main td などのルールが存在する場合、#someid td よりも優先されます。また、以下で説明するように、2 つの要素が同じ ID を共有することは有効ではありませんが、「機能する」場合があります。

4

1 に答える 1

3

コメントで述べたように#content、元のスタイルを上書きするクラスと一緒にセレクターにルールを含めることができますがラッパー要素である場合 #content(そうあるべきです。 WordPress の投稿に複数のテーブルを追加する方法は、... 奇妙です)。

とにかく、を複数の要素に追加するか、プロパティで使用するかを選択する必要ある場合は、スタイルシートを保守できなくする可能性がある一方で、複数の を追加すると、ページで使用されている JavaScript が壊れる可能性があるという単純な理由で使用します。すべてのブラウザーでの id セレクターの実装が、同じ を持つ複数の要素に対応できるという保証はありません。id!important!important!importantidid

基本的に、非常に推奨されていないが有効なプラクティスと、無効で未定義の動作のいずれかを選択します。

于 2011-02-26T08:59:58.090 に答える