2012-02-13 22 views
0

デザイナーが作成したウェブサイトが完全にテーブル形式です。私はそのセル内に別のテーブルを埋め込んでいますが、私のテーブルは独自のスタイルシートを持っています。私が外部にリンクすると、サイト全体が歪んでしまいます。私が望むのは、自分のスタイルシートを自分のテーブルで動作させることだけです。CSSスタイルの競合

サイト全体で競合やオーバーライドを起こすことなくこのスタイルシートを含めるにはどうすればよいですか?

答えて

0

より良い選択肢がない場合は、tableidまたは特定のclassとしてください。次に、すべてのCSS宣言でこれを使用し、スタイルが新しいテーブルにのみ適用されるようにします。 This articleはさらに疑似名前空間の考え方を説明しています。これは検討する価値があります。

ので、代わりの:

td { border: 1px solid black; } 

あなたが持っているでしょう、例えば:

.myClass td { border: 1px solid black; } 
+0

ありがとう、それを試してみましょう! – Rolln

0

の世話をするためのものの2種類があります:1)を使用し、テーブルに影響を与えることから、あなたのスタイルシートを防止2)テーブルのフォーマットがテーブルに影響しないようにする。あなたのスタイルシートを修正する必要があります。

ユニークなidをテーブルに割り当ててから、スタイルシートのすべてのルールで対応するセレクタを使用します(Rob Wの答えを参照)。これは1)で十分です。 2)もそうであるが、必ずしもそうではない。それをテストし、全体的なスタイルシートを見てください。ここには簡単な方法はありません。

問題点を説明するために、テーブルにセルの周囲に罫線を付けるとします。これはtable#foo td { border: solid; }です。しかし、全体のスタイルシートにtd { border: none !important; }がある場合。それは良い習慣ではありませんが、そのようなことは使用されます。多くの場合、著者は!importantを使用します。この場合、スタイルシート全体を変更できない場合は、スタイルシートで!importantも使用する必要があります。極端な場合には、より具体的になるように、!important書き込みセレクタを使用する必要があります。

+0

これは深い答えのためにたくさんありがとう、確かにこれを考慮する! – Rolln