• 締切済み

tableタグの枠線について

tableタグで個別にborderを設定している箇所のみまとめて色を指定する方法って何かありますでしょうか? 【補足】 1つのHTML内において、 <table border="0" align="center"> … </table> で囲まれたtableは枠線を表示せず、 <table border="1"(或いは2以上) align="center"> … </table> で囲まれたtableは指定した色の枠線にしたいのですが…。 出来れば、個別のtableにクラスを指定して…という方法は、適用したいtableが湯水のごとく大量にあるので避けたいです…。

  • CSS
  • 回答数4
  • ありがとう数0

みんなの回答

回答No.4

#3です。 じゃあJavaScriptでしょうね。 一応属性値セレクタというやつで table, table * {  border:solid #FF0000; } table[border="0"], table[border="0"] *{  border:none; } みたいなこともできますが(IEも7から対応)、おそらく太さはHTMLで指定したままにしたいのですよね? CSS3なら「borderが0でないtable」の指定はできますがCSS3はまだ早いですし、 冗長になっていいなら table[border="1"],table[border="1"]*{ } table[border="2"],table[border="2"]*{ } とできますが、JavaScriptで全tableのborderの値を取得してスタイルを設定するほうが最終的には早いと思います。

回答No.3

><table border="0" align="center"> そもそもこれは枠線出ませんよね?

dryellow_exp
質問者

補足

承知しています。 <table border="0" align="center"> のtableは枠線を出さず、borderが1以上のtableにおいて、枠線の色の一括設定がしたいと思い書き込みました。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

tableにはsummary属性が必須ですから、それを利用するとか、class名をつけるとか、border属性の値を利用するとか、方法はいろいろあります。 <table border="1" summary="価格-表" class="price List"><!-- alignは非推奨です。 -->  <tbody>   <tr>    <th abbr="品名">品名</th><th abbr="品番">品番</th><th abbr="標準価格">標準価格</th>   </tr>   <tr>    <td>掃除機</td><td>abcefg</td><td>12,000</td>   </tr> ・・・・ と <table border="1" summary="製品の写真" class="photo List">  <tbody>   <tr>    <th abbr="品名">品名</th><th abbr="品番">品番</th><th abbr="写真">写真</th>   </tr>   <tr>    <td>掃除機</td><td>abcefg</td><td><img src="" width="" height="" alt=""></td>   </tr> ・・・・  border="0"は現実にはあまり指定しないでしょう。表の目的や後方互換を考えるとborder"1"としておくほうが良いです。 ★単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.1 ) ★ページレイアウトの目的で表を用いる( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )ことはしてはならない  スタイルシートを解釈しないユーザーエージェントのために、罫線はとりあえず付けておきましょう。  table要素のborder属性は、tableだけでなくthやtdにも一括して指定しますから、スタイルシートで個別に指定するほうが良いでしょう。 table.price{ border-collapse:collapse; border:gray solid 2px; text-align:center; } table.price th,table.price td{ border:1px gray solid; } table.price td+td+td{ text-align:right; } とか・・・  HTMLは文書構造が示されているはず--HTMLの目的がそうなので--ですから、その文書構造から、表は特定できるはずです。上記のようにclass名を指定しなくても・・ table[summary="価格表]{ border-collapse:collapse; border:gray solid 2px; text-align:center; } table[summary="価格表] th,table.price td{ border:1px gray solid; } table[summary="価格表] td+td+td{ text-align:right; color:red; } HTMLさえ、きちんと書かれていれば、スタイルシートのセレクタを使えば良いです。 div#priceList table,#priceList table th,#priceList table td{border:color:green;}  価格表DIV要素内のtableについては・・・ h2+table,h2+table th,h2+table td{}  h2のすぐ次に書かれているtableについては・・ h2+p+table,h2+p+table th,h2+p+table td{}  h2の次に<p></p>がひとつだけある場合は・・ div.header table***  header内のtableなら・・ と、

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

そういうときのために、CSSというものがあるのだと思います。

関連するQ&A

  • テーブルのボーダー(枠線)は何で指定したらいいですか?

    テーブルの枠線の指定の仕方について質問です。 HTMLだけで指定するのであれば、 <table border="1"> ~~ </table> といった感じなのでしょうが、CSSも併用している場合、CSSで td{border:solid;] とし、HTMLでは <table> ~~ </table> という風に簡単(?)に書いたほうがいいんでしょうか? なんでも見た目はCSSで定義しろとのことですし、テーブルの枠線ってHTMLとCSSとどっちで定義するのがいいんでしょうか? 分かりにくい質問で申し訳ありません。初心者のため書き足りないところあるかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • HTML
  • ビルダー7。TABLEの枠線を色々指定したい

    ホームページビルダー7を使っています。 テーブルの枠線の色を変えたり、枠線を点線で表示したりしたいのですがうまくいきません。。。 ビルダーには簡単に枠線を指定できる機能はないのかなと思い、以下のようなタグも打ってみました。 <TABLE width="500" height="237" border-color="#ffccaa" dotted> 結果、やっぱり枠線はでてきません。 タグの順番とかがおかしいのでしょうか。 どなたかわかる方教えてくださいー。

  • テーブルの枠線(外内両方)をすべて同じ太さ(1px)にしたい

    はじめまして。 cssから初めて、いま初めてテーブルタグを触っているのですが・・・ おそらくとても初心者なことだと思うのですが、tableタグの枠線の太さを揃える方法がわかりません・・・ <table ~>で直接HTMLで指定すると重なり合う2つのborderのおかげで2px分のテーブルが表示されます。 これを1px分だけの細い(ここのサイトもそうだと思います。)テーブルを作りたいのですが、こちらはCSSでそれぞれのセルに対してこのセルはbottomだけ、このセルはleftだけ、というように指定していかなければいけないのでしょうか? テーブル自体ほとんど触ったことはないのですが、なぜか余計にややこしいことをしているような気がして質問させていただきました。 どうかよろしくお願致します。

    • ベストアンサー
    • HTML
  • テーブル内画像の枠線の色

    DreamWeaverで製作中なのですが、テーブル内に画像を配置して、枠線を表示させたいのです。 ボーダー指定すると標準で黒なので、色指定してみようとやってみたのですが出来ませんでした。タグは以下の通りです。 <td rowspan="2" align="center" valign="middle"><img src="img/sports_small.jpg" width="111" height="136" border="2" bordercolor="#99cc00"></td> この後半の bordercolor="#99cc00" ではダメなのでしょうか?教えてください。

  • テーブル高さ指定タグについて

    テーブル高さ指定タグについて サイズがバラバラの4枚の画像をテーブルを使って同じ幅・高さ縦横各2枚並べて表示したいと思っています。 下記のとおり高さ・幅300と指定をしているにもかかわらず、400×400pixの画像が高さを超えて目いっぱい表示してしまいます。 <table border="1" width="600" height="600" cellspacing="0" cellpadding="0"> <tr> <td width="300" height="300" align="center"> <IMG border="0" src="http://○○○○/f000000_1.jpg"></td> <td width="300" height="300" align="center"> <IMG border="0" src="http://○○○○/f000000_2.jpg"></td> </tr> <tr> <td width="300" height="300" align="center"> <IMG border="0" src="http://○○○○/f000000_3.jpg"></td> <td width="300" height="300" align="center"> <IMG border="0" src="http://○○○○/f000000_4.jpg"></td> </tr> </table> どうすれば、すべて300×300pixの範囲内におさめることができるのでしょうか?

    • ベストアンサー
    • HTML
  • 画像の枠線の色の指定

    FrontPageとHTML言語と両方を使いながらホームページを 作成しています。 写真に枠を設定したのですが、枠線の色がなぜかピンク色になってしまいます。画像の枠線の色は指定できないとありますが、他に指定の方法はないのでしょうか? どなたか、HTML言語に詳しい方、おしえてください。 ちなみに画像の設定はこのような記述をしています。 <p align="center"><img border="1" src="image/seminar/semi01.jpg" vspace="5" width="150" height="113"></a>

  • テーブルの枠線の色を指定したい。

    http://www.kanzaki.com/docs/html/htminfo16.html を参考に、 --------------------------------------- <table> <tr> <td>りんご</td> <td>甘酸っぱい</td> <td>おおむね赤</td> </tr> <tr> <td>なつみかん</td> <td>かなり酸っぱいと思う</td> <td>たいてい黄色</td> </tr> </table> --------------------------------------- と言うテーブルに対して、 --------------------------------------- <style> table { border-collapse: collapse; } td { border: solid 1px; padding: 0.5em; } </style> --------------------------------------- と記述して、枠線を付けたのですが、枠線の色を指定する事は出来ますか? 赤にしたいです。ご回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • DREAMWEAVERでテーブルに枠線

    DREAMWEAVER MXでテーブルに枠線を付けたいのですが、テーブルを入れ子にする以外の方法はあるのでしょうか? 1つ1つのセルにではなく、テーブル全体の外側にだけ付けたいのです。 ボーダーですとセルの1つ1つに付いてしまいます…。 HTMLの知識がほとんどないのですが、これはHTMLで何かしないとだめなのでしょうか? ご教授下さい。

    • ベストアンサー
    • CSS
  • テーブルの位置

    テーブルを上下に2つ表示させたいのですが、うまく表示できません。 <table border="0" cellspacing="0" align="center"> ・・・ </table> <table border="0" cellspacing="0" align="center"> ・・・ </table> としていたときは、ちゃんと上下に2つ表示されていたのですが、 <table border="0" cellspacing="0" align="left"> ・・・ </table> <table border="0" cellspacing="0" align="center"> ・・・ </table> にすると、左右に2つ表示されてしまいます。 どうしてでしょうか?

    • ベストアンサー
    • HTML
  • テーブルの枠線

    IEブラウザのバージョンにより、表示が変わることはわかっているのですが どうしても解決できないので質問させていただきます。 対応ブラウザがIE8からIE11という前提なので、まずはIE8で試してみました。 きれいに表示できました。 が、IE11で表示したら、見出しは枠線が表示されました。 でも、中の罫線が表示されません。(画像添付) IE9、IE10はソフトを入れ直しが必要なので、また未確認です。 <meta>タグを入れてもダメでした。(IE=edge) IE8を捨ててもよいので、IE11で枠線を表示させるにはどうしたらよいのか、 ご教授願えないでしょうか? widthの指定もしているし、border-styleも記述しているつもりですが IE11では何が足りないのか、わかりません。 以下にソースコードを記載しますので よろしくお願いいたします。 ※まだdebug中なので、罫線以外につきましては無視願います。 <html> <head> <style type="text/css"> #midashi { border:2px solid #ffffff; border-collapse:collapse; } #table1 { border:2px solid #3d9f51; border-collapse:collapse; } #table0 { border:2px solid #83ca51; border-collapse:collapse; float:left; margin-right:-3px; } #table1 .td0{ width:15px; height:20px; border: none; text-align:left; font-size:80%; } #table1 .td1{ width:12px; height:20px; border-top-width: 1px; border-top-color = "#3d9f51"; border-top-style = "solid"; border-right-width: 1px; border-right-color = "#aaa"; border-right-style = "dotted"; background-color:#FFFFFF; border-collapse:collapse; } #table1 .td2{ width:12px; height:20px; border-top-width: 1px; border-top-color = "#3d9f51"; border-top-style = "solid"; border-right-width: 1px; border-right-color = "#aaa"; border-right-style = "solid"; background-color:#FFFFFF; border-collapse:collapse; } #table1 .td2bg{ background-color:#83ca51; } #table0 .td3{ width:60px; height:20px; border-bottom: 1px #7f7f7b solid; background-color:#83ca51; border-collapse:collapse; text-align:center; font-size:80%; } #table0 .td3non{ width:60px; height:20px; border-bottom: 1px #7f7f7b solid; background-color:#ffffff; border-collapse:collapse; text-align:center; font-size:80%; } </style> </head> <body> <table id="table0"> <script type="text/javascript"> //**************************************************************************** //--- 番号 for(i=0; i<9; i++){ document.write('<tr>'); if( i == 0){ document.write('<td class="td3non"> </td>') }else{ document.write('<td class="td3">部屋' + i + '</td>') } document.write('</tr>'); } //--- //**************************************************************************** </script> </table> <table id="table1"> <script type="text/javascript"> //**************************************************************************** //--- 見出し document.write('<tr>'); for(j=0; j<48; j++){ // 30分単位の一日分 if( j%2 == 1){ document.write('<td class="td2 td2bg"></td>') // 時間表示無し }else{ document.write('<td class="td0 td2bg">' + (j/2) + '</td>') // 時間表示有り } } document.write('</tr>'); //--- //**************************************************************************** //**************************************************************************** //--- 時間テーブル for(i=0; i<8; i++){ // i:部屋の数 document.write('<tr>'); for(j=0; j<45; j++){ // 30分単位の一日分(48) if( j%2 == 1){ document.write('<td class="td2"></td>') // solid }else{ document.write('<td class="td1"></td>') // dotted } } for(j=0; j<3; j++){ // 30分単位の一日分(48) if( j%2 == 1){ document.write('<td class="td2" style="font-size:50%;text-align:center;">・</td>') // solid }else{ document.write('<td class="td1" style="font-size:50%;text-align:center;">・</td>') // dotted } } document.write('</tr>'); //--- //**************************************************************************** } </script> </table> </body> </html>

    • ベストアンサー
    • CSS

専門家に質問してみよう