- ベストアンサー
<tr>タグと<td>タグの違い
- テーブルでレイアウトを行う際に、<tr>タグと<td>タグのどちらに CSS を適用するべきかについて質問です。
- (1) CSS で文字スタイルを指定する場合、<table> タグにクラスを指定する方法や、<td> タグにクラスを指定する方法のどちらが良いか検討しています。
- (2) テーブルに背景色を指定する場合、<tr> タグと <td> タグのどちらに指定するべきかについて教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(1)TDタグひとつひとつにCLASS属性を設定してください。TABLEタグにCLASS属性を設定しても、子要素にあたるTDタグにまではCSSが適用されたりされなかったりする場合があります。また、TDタグひとつひとつを細かく修正することになった場合、TABLEタグに設定したCSSが意図しない影響を及ぼすかもしれません。 (2)TDタグに指定してください。 概して、TRタグにCLASS属性、あるいはその他の属性を設定することはありません。環境によってTRタグの解釈にバラつきがあるというだけではなく、単に標準的な記述ではないという理由によります。 すなわち、好まれません。
その他の回答 (1)
- koutarou504
- ベストアンサー率44% (182/407)
>(1)cssで文字スタイルの場合 CLASS 指定は TABLE タグで問題ないと思います。 ただ、CSS での指定では、 .text td{ ~ } /* (<table class="text">) */ の様に TD タグに対して指定する事をお勧めします。 単に .text{ ~ } /* (<table class="text">) */ ですと、個々の指定が子孫の要素に継承されない可能性があるからです。 <td>タグひとつひとつにクラス指定の .text{ ~ } /* (<td class="text">) */ これは手間がかかるので・・・。 >(2)テーブルに背景色を指定する場合 テーブル自体に背景色を指定したいなら、TABLE タグに指定して下さい。 少なくとも TD に指定するとセルに対してのみに色がつきます。つまりセルとセルの間が開いている場合は・・・。 逆にセルに背景色を指定したいなら、TD タグに指定です。意味からしても・・・。 という事で、TR に指定する意味の場合がありませんので TR への指定はなしと。 (特定の行(TR)に背景色と考える時は、TR タグにCLASS を指定しますが、スタイルシートではそのクラスで修飾した TD で記述します。)
お礼
ありがとうございます。 面倒でも<td>タグの中にひとつひとつにクラス指定した方が確実ということですね。