デザイナーが作成したウェブサイトが完全にテーブル形式です。私はそのセル内に別のテーブルを埋め込んでいますが、私のテーブルは独自のスタイルシートを持っています。私が外部にリンクすると、サイト全体が歪んでしまいます。私が望むのは、自分のスタイルシートを自分のテーブルで動作させることだけです。CSSスタイルの競合
サイト全体で競合やオーバーライドを起こすことなくこのスタイルシートを含めるにはどうすればよいですか?
デザイナーが作成したウェブサイトが完全にテーブル形式です。私はそのセル内に別のテーブルを埋め込んでいますが、私のテーブルは独自のスタイルシートを持っています。私が外部にリンクすると、サイト全体が歪んでしまいます。私が望むのは、自分のスタイルシートを自分のテーブルで動作させることだけです。CSSスタイルの競合
サイト全体で競合やオーバーライドを起こすことなくこのスタイルシートを含めるにはどうすればよいですか?
より良い選択肢がない場合は、table
をid
または特定のclass
としてください。次に、すべてのCSS宣言でこれを使用し、スタイルが新しいテーブルにのみ適用されるようにします。 This articleはさらに疑似名前空間の考え方を説明しています。これは検討する価値があります。
ので、代わりの:
td { border: 1px solid black; }
あなたが持っているでしょう、例えば:
.myClass td { border: 1px solid black; }
の世話をするためのものの2種類があります:1)を使用し、テーブルに影響を与えることから、あなたのスタイルシートを防止2)テーブルのフォーマットがテーブルに影響しないようにする。あなたのスタイルシートを修正する必要があります。
ユニークなid
をテーブルに割り当ててから、スタイルシートのすべてのルールで対応するセレクタを使用します(Rob Wの答えを参照)。これは1)で十分です。 2)もそうであるが、必ずしもそうではない。それをテストし、全体的なスタイルシートを見てください。ここには簡単な方法はありません。
問題点を説明するために、テーブルにセルの周囲に罫線を付けるとします。これはtable#foo td { border: solid; }
です。しかし、全体のスタイルシートにtd { border: none !important; }
がある場合。それは良い習慣ではありませんが、そのようなことは使用されます。多くの場合、著者は!important
を使用します。この場合、スタイルシート全体を変更できない場合は、スタイルシートで!important
も使用する必要があります。極端な場合には、より具体的になるように、!important
と書き込みセレクタを使用する必要があります。
これは深い答えのためにたくさんありがとう、確かにこれを考慮する! – Rolln
ありがとう、それを試してみましょう! – Rolln