• ベストアンサー

CSSのテーブルで色分けをする場合

こんばんわ。 HTMLでテーブルタグを使用していたのですが、行数が多くカスタマイズするのが辛くなってきました。 そこで外部から読み込むタイプのCSSを作り始めました。 本題ですが、1つの表を作っています。 1行目と2行目では背景色やフォントなどを変更したいと思っています。 テーブルの背景色は#dadbefです。 table.movie {width: 550; background-color: #dadbef; } までは作ったんですが table.movie td {background-color: #888888; } これではうまくいかないですよね。。 TDをクラスごとに設定する、というのを思いついたんですが、ここで頭がパンクしてしまいました。。 それともCSSで表の列を色分けするのはやめたほうがいいでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

行単位で装飾したいのならばtdではなく、trにclassを指定してはどうでしょう。 HTML <tr class="xxx"><td>aaa</td><td>bbb</td>・・・ <tr class="yyy"><td>AAA</td><td>BBB</td>・・・ CSS tr.xxx td {background-color:#888;} ↑class='xxx'の tr の配下にある td というセレクタになります。 なお、テーブルはいくつかのブロックに分けられます。 色を変えたいというならば意味があるのでしょうから、ブロックを変える →thead、tbodyを使い分ける、tbodyでも別のブロックにする セルの種類を変える →td、thを使い分ける 等、そうした区別を検討してもいいのかも。 例 <table> <thead> <tr><th>出席番号</th><th>名前</th></tr> </thead> <tbody class="male"> <tr><th>1</th><td>木村太郎</td></tr> </tbody> <tbody class="female"> <tr><th>2</th><td>山田花子</td></tr> </tbody> </table> 各ブロックのセルの背景色を変えるには thead th{backgrond-color:xxx;} tbody.male th,tbody.male td{backgrond-color:xxx;} tbody.female th,tbody.female td{backgrond-color:xxx;}

naonaonaonao
質問者

お礼

こんばんわ。 tr単位で行えばよかったんですね!見事うまくいきました!ありがとうございます。 あと<th>などは初めてききましたので早速ググりました。これからはこのタグも活用したいと思います。 本当にありがとうございました。

その他の回答 (1)

  • gaviru44
  • ベストアンサー率56% (95/168)
回答No.1

こんばんは。 table.movie tdではなく、例えば簡単に数字の1,2,3(じゃなくてもわかりやすいもの)を使えば出来るのでは? .1{background-color: #888888;} にして使いたい<td>で<td class="1">にすれば出来るかと…。 <注意> <td class="1">の1の前には.(ドット)はいりません。 回答違いだったらごめんなさい。

naonaonaonao
質問者

お礼

回答ありがとうございます。 ちょっと私の求めていた回答ではなかったのですが、 短くタイトルをしておかないとややこしくなりますね、確かに。。

関連するQ&A

  • CSSでテーブル状にレイアウトしたが,背景色の範囲が意図と異なる.

    cssを使って3列のテーブル状のレイアウトを作成しています. 外部cssファイルにてbackground-colorを記述して 背景色を3列それぞれにつけているのですが,行数の 違いによって背景色の付く範囲がそれぞれの列で 変わってしまっています. (下のソースでいうと,111...は3行分の背景色が付きますが, 他の222...と333...は1行分の背景色しかつきませんが, 222...と333...の部分も背景色は3行分つけたいのです.) 原因は文字数の違いにより行数が異なるためと思いますが, これを解決する方法はありますか? 【html記述】 <div id="table"> <div id="table_left"> 111111<br> 111111<br> 111111<br> </div> <div id="table_center"> 222222 </div> <div id="table_right"> 333333 </div> <BR class="clears"> </div> 【css記述】 #table { width:700px; margin:0px auto 0px; border-style:solid; border-color:#999; border-width:1px; } #table_left { width:64px; background-color:#e5ded7; color:#80655e; padding:8px; float:left; } #table_center { width:294px; padding:8px; float:left; } #table_right { width:294px; background-color:#edf8b1; background-repeat:repeat; padding:8px; color:#3d6e14; float:right; }

    • 締切済み
    • CSS
  • cssで、1行2段のtableを記述するには?

    cssで、1行2段のtableを記述するには? → htmlのページに以下を挿入しました。 <table> <tr> <td width="2"></td> <td width="588"></td> </tr> </table> → htmlのページの<head>と</head>の間に以下を挿入しました。 <link rel="stylesheet" type="text/css" href="table.css"> → table.cssファイルを、onimotsuさんの指示に従い、以下のように記述しました。 TABLE{width : 640px;border-width : 0px 0px 0px 0px; padding-top : 0px;padding-left : 0px;padding-right : 0px; padding-bottom : 0px; background-color : #FFFFFF;} → table.cssファイルに以下を挿入するにはどうしたらいいのでしょうか? いろいろ試しましたが、うまくいきません。 <tr> <td width="2"></td> <td width="588"></td> </tr> → うまく挿入できれば、htmlのページのtableの項は次のようにすっきりとなります。 <table> </table> よろしくおねがいします。

  • DreamWeaverでテーブルをCSSにした場合にずれます。

    DreamWeaverを使い始めました。 CSSの段組左にテーブルを入れると下記のようになりました。 ----------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>無題ドキュメント</title> <style type="text/css"> <!-- #wrap { width: 500px; } #content { float: left; width: 200px; background-color: #00CCCC; } #main { width: 300px; float: left; background-color: #99FF99; } #footer { clear: both; width: auto; background-color: #CCFF66; } --> </style> </head> <body> <div id="wrap"> <div id="content"> <table width="200px" border="0" cellspacing="0" cellpadding="0"> <tr> <td>1段</td> </tr> <tr> <td>2段</td> </tr> </table> </div> <div id="main">メインメインメインメインメイン</div> <div id="footer"> 下</div> </div> </body> </html> -----↑ここまでDreamWeaver そこで、CSSでテーブルにボーダー0の値を入れて、タグからborder="0"を消すと、段組右側が左の下にずれて表示されます。 ブラウザプレビューでは正常ですが、編集しにくくて困ってます。 table { border: none; border-collapse: collapse; } DWでは、このようになるものなのでしょうか。

    • ベストアンサー
    • HTML
  • cssで商品を並べる時、テーブルを使わないでできる?

    cssとっかかったばかりの初心者ですのでわけのわからない質問ばかりしてしまいますが、よろしくお願いします。 cssを使ったページに商品を並べる場合、テーブルを使ってレイアウトするのが楽と思いますが、テーブルを使わないで2列、3列というようにできますか? 普通にテーブルを使ったら <table> <tr> <td>item1</td> <td>item2</td> <td>item3</td> </tr> <tr> <td><img src="img/01.jpg" width="100" height="100"></td> <td><img src="img/02.jpg" width="100" height="100"></td> <td><img src="img/03.jpg" width="100" height="100"></td> </tr> </table> ですが、テーブルタグをつかわず、cssで列を指定ってできますか? それとも、商品ラインナップの場合はテーブルで入れるのが普通ですか??? いろいろやってみたんですが、わからなくなったので、質問します。 よろしくお願いします。

    • ベストアンサー
    • XML
  • HTML、CSSについて。テーブル背景がズレる。

    こんにちは。よろしくお願いします。 HTMLとCSS、2つのファイルを作成しています。 HTMLでテーブルを作成し、<td><div=名前></div></td> として、テーブルの中身はCSSにまかせています。 複数列、複数行ありますがdiv名はひとつずつ違うのが付いています。 CSSでは、 div#名前 { width: 20px; height: 20px; margin: 0px; padding: 0px; background: url(画像名.gif); }   ・   ・   ・ htmlを表示させてはcssのpxを調節し、 きれいな背景画像付きのテーブルが完成した!と思ったのですが、 ブラウザの文字サイズを最大に変更すると崩れてしまいました。 pxではなくて%で指定してみても崩れます。 解決策をご存知の方、教えてくださると有難いです。 よろしくお願いします。

  • cssで一個のテーブルだけにデザインを反映したい

    cssの編集で、テーブルすべてに反映されてしまって困っています。 下記は書籍のサンプルを抜粋したものですが、 /*--------------------------- ▼テーブル -------------------------- */ table { background-color:#000033;} th { background-color:#005890; color:#ffffff; } td { background-color:#ffffff; color:#333333; } /*--------------------------- ▲テーブル -------------------------- */ という設定にしたら、すべてのテーブルに反映されました。 このテーブルだけ、という風にしたいのですが、スタイルシート側を どうしたらいいのでしょうか? ちなみに反映したいhtmlファイルのテーブルのソースは下記の感じなのですが、 div とか postとかをtableの前に持っていけばいい?みたいなところまで 調べてわかっているのですが、まったくの初心者でなかなかうまくいきません。 <div class="post"> <table width="400" border="0" cellspacing="1"> ・・・略・・・ </table> </div>

    • ベストアンサー
    • HTML
  • CSSでテーブルを作る方法について

    CSSでテーブルを作る方法についてアドバイスお願いします。 今、外CSSで、テーブルを作成しようとしているのですが、cssがhtmlに反映されていないようです。2つボックスを並べたいです。 .box1{ float: left; background-color: #cc0000; width: 200px; height: 200px; } .box2{ float: left; background-color: #d0dcdf; width: 200px; height: 200px; } htmlには、 <div CLASS="box1"></div> <div CLASS="box2"></div> と書きました。 どこが問題なのかどなたかご指摘いただけますでしょうか?

  • テーブルに関する質問です。

    テーブルに関する質問です。 wordpressでHPを作っているのですが、テーブルが思った通りの形にならない為 試しにhtmlドキュメントで同じテーブルを作ろうと試みたのですが やはり同じ現象が起き、思った通りのレイアウトにならないです。 一行目のテーブルと二行目のテーブルはくっつけて、 二行目の列のテーブルのセルとセルの間隔を1px空けてやりたいのですが (1)のwidth:0;の空きセルを作って、それをセルとセルの間に挿入することによって 間隔を空けるという方法は、どうやっても1pxではなく2pxの間隔になってしまい、 (2)の白いborderをセルの右側だけに表示させるという方法では、 Firefoxでは思った通りのレイアウトなのですが、 IE6で見た場合に一行目のセルに線が付きぬけて表示されてしまいます。 色によっては誤魔化かされて付き出てない様に見えるのですが。 どうしたら良いでしょうか? よろしくお願いします。 (1) <HTML> <HEAD> <TITLE>テスト</TITLE> <STYLE type="text/css"> <!-- table { border-collapse: collapse; border-spacing: 0; } a img { border: none; } --> </STYLE> </HEAD> <BODY> <table border="0"> <tbody> <td style="background-color:#b7a193; width: 300px; height: 30px; padding:0px" colspan="5"></td> <tr> <td style="width: 100px; height: 50px; background-color: #eee8d9; border-collapse: collapse;"></td> <td style="background-color: #ffffff; width: 0px; height: 40px; border-collapse: collapse;"></td> <td style="width: 100px; height: 50px; background-color: #eee8d9; border-collapse: collapse;"></td> <td style="background-color: #ffffff; height: 40px; width: 0px; border-collapse: collapse;"></td> <td style="width: 100px; height: 50px; background-color: #eee8d9; border-collapse: collapse;"></td> </tbody> </table> </BODY> </HTML> (2) <HTML> <HEAD> <TITLE>テスト</TITLE> <STYLE type="text/css"> <!-- table { border-collapse: collapse; border-spacing: 0; } a img { border: none; } --> </STYLE> </HEAD> <BODY> <table border="0"> <tbody> <td style="background-color: b7a193; width: 300px; height: 30px; padding:0px" colspan="3"></td> <tr> <td style="width: 100px; height: 50px; background-color: #eee8d9; border-collapse: collapse; border-right: #ffffff 1px solid;"></td> <td style="width: 100px; height: 50px; background-color: #eee8d9; border-collapse: collapse; border-right: #ffffff 1px solid;"></td> <td style="width: 100px; height: 50px; background-color: #eee8d9; border-collapse: collapse; border-right: #ffffff 1px solid;"></td> </tbody> </table> </BODY> </HTML>

    • ベストアンサー
    • CSS
  • シンプルなコードなのにテーブルにCSSが適用されない・・・

    今回思い悩んで質問させて頂く事となりました。 すごい単純に書いてるつもりなのですが テーブルに着色 (青) (赤) が適用されません。 当方、本一冊の独学でやっているので大ポカと思うので ご指摘頂ければと思います。 以下コードです。 ------------------------------------------------ <title>無題ドキュメント</title> <style type="text/css"> <!-- #blue tr {background-color:blue;} #blue td {background-color:blue;} #red tr {background-color:red;} #red td {background-color:red;} --> </style> </head> <body> <table width="200" border="1"> <div id="blue"> <tr><td>&nbsp;</td></tr> </div> <div id="red"> <tr><td>&nbsp;</td></tr> </div> </table> </body> Dreamweaver上では着色されるのですが・・・ どなたかご教授お願い致します。

    • ベストアンサー
    • HTML
  • operaだとテーブルがなくなります

    operaだテーブルがなくなります IEだと問題なく表示されるのに だれか助けてください style.css    body{background-color:#ffff99;margin:0px; font-size:large; font-family:"HG正楷書体-PRO","HG行書体","HGP行書体",cursive} .cur{font-family:cursive} .ser{font-family:serif} } table{background-color:#ff9933;  width:100%; height:10%    }   .midori{background-color:#999933; width:100%; height:3.3%  }        htmlのほうは <HTML> <HEAD> <TITLE></TITLE> <link href="style.css" rel="stylesheet" type="text/css"> </HEAD> <BODY> <table><tr ><td></td></tr></table> <table class="midori"> <tr ><td></td></tr></table> <table style="height:6.7%"> <tr ><td></td></tr></table> <table style="position:absolute; left: 0px; bottom:8%; width:8%; height:100%; background-color:#993300"> <tr ><td></td></tr></table> <table style="position:absolute; bottom:0; height=8% " class="midori"> <tr ><td></td></tr></table> </BODY> </HTML> こんな感じなのですが どうしてでしょうか

    • ベストアンサー
    • HTML