- ベストアンサー
tableのバックグラウンドカラーに関する疑問
- HTMLのtable要素において、background-colorプロパティが継承されないことについて疑問があります。
- tableの背景色が赤色で塗られる際に、tdやthの背景色も赤くなるのはなぜでしょうか?
- tdやthの背景色が赤くなる理由に関して、以下の2つの考えがあります。1つ目は、tdやthのbackgroundプロパティが指定されていないため、デフォルトの透明な背景が有効となり、tableの背景色が透けて見えるという理由です。2つ目は、tdやthにtableのbackgroundプロパティが継承されていないため、赤い背景色が適用されないという理由です。どちらが正しいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブルの構造は以下の通りです。 http://www.w3.org/TR/CSS2/tables.html#table-layout 透けていれば下まで見えますし、透けてなければ一番上の物だけが見えます。 (現実世界の物が、後ろの物が見えないのと同じです。)
その他の回答 (1)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
HTMLが間違っている table要素にbackground属性はありません。 →11.2.1 TABLE要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.2.1 ) bgcolorです。非推奨です。( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/present/graphics.html#adef-bgcolor ) 継承されるされないは、カスケーディングスタイルシートでの話です。 正しく書くと <table border="1" summary="schedule"><!-- summaryは必須 --> <thead> <tr> <th abbr="内容">授業内容</th><th abbr="講義">講義</th> </tr> </thead> <tbody> <tr> <td>1時間目</td><td>国語</td> </tr> <tr> <td>2時間目</td><td>数学</td> </tr> <tr> <td>3時間目</td><td>英語</td> </tr> <tr> <td>4時間目</td><td>科学</td> </tr> </tbody> </table> となりますかね。 スタイルシートでは、background-colorは、継承しないプロパティであり、かつ初期値がtransparentですから、(1)であるか(2)であるかは判断できませんが、スタイルシートで table[summary="schedule"]{/* 詳細度 0 0 1 1 */ backgoound-color:blue; border-collapse:separate; border-spacing:10px; } table[summary="schedule"]:hover{ backgoound-color:blue; } table[summary="schedule"] *{ /* 詳細度 0 0 1 1 */ background-color:white; } とでもすれぱ歴然 ★table[summary="schedule"] td とすると詳細度が 0 0 1 2になるのでテストにならないので全称セレクタで指定してある。
お礼
>table要素にbackground属性はありません。 なるほど。また一つ勉強させて頂きました。 詳細に補足していただき ありがとうございました。
お礼
>透けていれば下まで見えますし、透けてなければ一番上の物だけが見えます。 やはり、そういうことですね。 すっきりしました。 ありがとうございました。