• ベストアンサー

スタイルシートについて

スタイルシートについて質問です。 下記をTableの基本スタイルにしています。 特定のTableのみ、borderカラーを#666666にしたい場合 上記基本スタイルを生かしたままで簡潔なスタイルの設定方法はないでしょうか。 table, td, th {border: 1px solid; border-collapse: collapse} .w550     {border-color: #8AC5D4; width:550px} .w550 td    {border-color: #8AC5D4; text-align: center} .w550 th    {border-color: #8AC5D4; padding: 5px; padding-left: 10px; color:#2A6D90} いつもスタイルシートの設定が大量になってしまう為、今回はどうにか簡潔で綺麗にしたいので アドバイスいただけると大変助かります。 どうぞ宜しくお願い致します。

noname#16138
noname#16138
  • HTML
  • 回答数4
  • ありがとう数6

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

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

まずはcongo3261さんのスタイル記述は、少し整理できると思います。 ●border-collapseはtableタグに有効 ●罫線に関する記述が、色指定だけtable, td, thそれぞれに同じ指定があり、線種類や太さはまとめて指定してある で、以下のように整理できると思います。 .w550 {width: 550px; border-collapse: collapse;} .w550 td {text-align: center;} .w550 th {padding: 5px 5px 5px 10px; color: #2A6D90;} .w550, .w550 td, .w550 th {border: 1px solid #8AC5D4} table, td, thそれぞれ特化した記述を先に書き、3つに共通の記述(この場合は罫線)を最後にまとめたものです。 (ちなみに th の padding って意味がないような…、th は中央寄せなので) で、上記のスタイルをベースに特定の table だけ罫線の色を指定するには、それがページに1つだけならflowermazeさんのおっしゃるようにIDが使えると思いますが、ページに複数ある場合は、継承を利用すればいいと思います(スタイルシートの正式名称、 CSS =「Cascading Style Sheet」の「Cascading」は「継承」の意味)。 あるいは状況依存セレクタを使って、以下のようにするのが簡単かと思います。 ------------------------- .w550 table {width: 550px; border-collapse: collapse;} .w550 td {text-align: center;} .w550 th {padding: 5px 5px 5px 10px; color: #2A6D90;} .w550 table, .w550 td, .w550 th {border: 1px solid #8AC5D4} .w550 .gray, .w550 .gray td, .w550 .gray th {border-color: #666666;} .w550 .red, .w550 .red td, .w550 .red th {border-color: #FF0000;} ------------------------- ■基本形 <div class="w550"> <table>  … </table> </div> ■基本形+gray <div class="w550"> <table class="gray">  … </table> </div> ■基本形+red <div class="w550"> <table class="red">  … </table> </div>

noname#16138
質問者

お礼

ありがとうございます。 大変参考になりました。 投稿のCSSは自分なりに整理したつもりでいたのですが まだまだ無駄な記述が多かったんだと改めて実感しました。 >(ちなみに th の padding って意味がないような…、th は中央寄せなので) 実は投稿する際に質問と関係なさそうな設定を削除したもので、thにtext-align: leftとしていた為、paddingを使いました。 > <div class="w550"> > <table> divで囲うなんて頭の中にまったくありませんでした。 教えていただいた方法はこれからじっくり試させていただきます。 どうもありがとうございました。

その他の回答 (3)

noname#96725
noname#96725
回答No.4

>いつもスタイルシートの設定が大量になってしまう為、今回はどうにか簡潔で綺麗にしたいので そのお気持ち良く解ります。私は少し異なる観点から私の苦い経験を通してのアドバイスをします。 私は色の設定だけをまとめた外部スタイルシートやフォント類の設定だけをまとめた外部スタイルシートなど 外部スタイルシートだけで5フォルダ22ファイルにしてそれらをstylesheetフォルダに入れ、各HTML文書からはどのCSSを参照させるかを選ばせています。(ファイル数がとても多いHPなので) それでも欠点だらけで、外部スタイルシートをどのようにまとめ・分類して管理しやすくするかは、どんなコンテンツを用意するかの次に重要な事だと思っています。これはもうあらかじめじっくり練らねばならない「戦略」ですね。これを行き当たりばったりでどんどん書き加えてゆくと皆目見当がつかなくなります(で、整理し直して上記のようなフォルダが出来上がりました) さて、引用された記述は外部CSSでの記述なのでしょうか。もしまだ外部スタイルシートをお使いでなかったらこの際に種類別目的別に書き分けた数種類の外部CSSへの移行をお勧めします。一枚のHTML文書の中に全てを書き込まない、これがご質問に対するお答えの大きな部分です。兎も角自分に取って判りやすいので管理が楽です。 具体的なご質問に対するお答えは: 基本スタイルは全て外部CSSに記述し、ある箇所だけに適用する特例的なスタイルは各HTML文書の<STYLE type="text/css"></STYLE>の間で<!--TABLE {   }-->の中に記述する(これが解りやすくてベター)、あるいはインラインで記述する(これはHTMLをずっと読み下さないと解らないのであまり薦められない)というのは如何でしょうか。

noname#16138
質問者

お礼

mariocecさん、ありがとうございます。 >引用された記述は外部CSSでの記述なのでしょうか。 スタイルシートは全て外部ファイルで、小規模から中規模サイトは1つのCSSファイルに全てを記述しています。 >5フォルダ22ファイル すっすごいですね。。mariocecさんのおっしゃるような方法もあるんだと目から鱗です。 貴重なご意見ありがとうございました。

回答No.2

特定のテーブルというのは1ページ内にひとつだけですか? それならclassとIDの併用がすっきりするかも。 (.w550の設定は生かして、border-colorだけ変えたいのですよね) table, td, th {border: 1px solid; border-collapse: collapse} .w550, .w550 td, .w550, th {border-color: #8AC5D4;} .w550     {width:550px} .w550 td    {text-align: center} .w550 th    {padding: 5px; padding-left: 10px; color:#2A6D90} #gray, #gray td, #gray th {border-color: #666666;} 一般のテーブル <table class="w550"><tr><th>... 枠線#666666のテーブル <table class="w550" id="gray"><tr><th>...

noname#16138
質問者

お礼

ありがとうございます。 >.w550, .w550 td, .w550, th {border-color: #8AC5D4;} >#gray, #gray td, #gray th {border-color: #666666;} 今まで上記の方法が分からずに、CSSファイルの中がぐちゃぐちゃになっていたので大変参考になりました。 classとIDの使い分けもすっきりさせるコツなんですね。 どうもありがとうございました。

  • 2NN
  • ベストアンサー率40% (143/353)
回答No.1

table, td, th {border: 1px solid; border-collapse: collapse} .w550a     {border-color: #8AC5D4; width:550px} .w550b     {border-color: #666666; width:550px} .w550 td    {border-color: #8AC5D4; text-align: center} .w550 th    {border-color: #8AC5D4; padding: 5px; padding-left: 10px; color:#2A6D90} こんなんでいいですか?

noname#16138
質問者

お礼

早速アドバイスいただきありがとうございました。 参考にさせていただきます。

関連するQ&A

  • 表の作成をスタイルシートで

    皆さんはHTMLで表を作成する際、どのように作成していますか? 私はTableタグとスタイルシートを使っているのですが、これをスタイルシートのみで 作成できないでしょうか。 例えば以下のような表で、■部分は他のセルと背景色を変えます。    ■□□    ■□□    ■□□ 通常私がやっている方法は、tableタグに下記スタイル「tb01」を、タイトル部分には 「td.title」を設定を設定しています。 -----------------HTML-------------------------- <table width="100%" border="0" cellspacing="1" cellpadding="0">  <tr>   <td class="title">6月7日</td>   <td>text</td> <td>text</td> <td>text</td>  </tr>  <tr>   <td class="title">6月8日</td>   <td>text</td> <td>text</td> <td>text</td>  </tr> </table> ---------------------------------------------------------- -----------------スタイルシート-------------------------- .tb01 {FONT-SIZE: 12px; border-collapse : collapse ;     border-width : 1px 0 0 1px ; border-style : solid ;     border-color : #CDCDCD ; ; width:350px; background-color:#FFFFFF;     } table.tb01 td {border-width : 0 1px 1px 0 ; border-style : solid ; padding : 7px ;         line-height:120%; border-color : #CDCDCD ; } td.title {background-color:#ECECEC;      } ---------------------------------------------------------- スタイルシートのみでは無理でも、もっと良い方法があれば 是非教えてください。

    • ベストアンサー
    • HTML
  • スタイルシートを入れる場所

    初心者です。 html文に ----------------------------------------------- <style> table { border-collapse: collapse; } td { border: solid 1px; padding: 0.5em; } </style> ----------------------------------------------- というスタイルシートを入れたいのですが、 <HTML> <HEAD> <TITLE>test</TITLE> </HEAD> <BODY> </BODY> </HTML> のどこの間に入れればいいのでしょうか? <BODY>と</BODY>の間でしょうか? それとも <HEAD>と</HEAD>の間でしょうか?

    • ベストアンサー
    • HTML
  • CSSでテーブルボーダーを表示させたいのですが・・

    スタイルシートを使用したテーブルのボーダー表示について質問です。 スタイルシートで下記テーブルボーダー表示設定をしたところ、 IEでは表示されるのですが、Netscape7.0ではボーダーが全く表示されません。 table.01 {FONT-SIZE: 12px; border-collapse : collapse ; border-width : 1px 0 0 1px ; border-style : solid ; border-color : #37503D ; background-color:#FAFFFB;} table.01 td {border-width : 0 1px 1px 0 ; border-style : solid ; padding : 5px ; line-height:120%;} 現在調べているところですが、お解りになるかたがいらっしゃれば是非教えていただけないでしょうか。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • HTML
  • スタイルシートテーブルの罫線を細くしたい

    例えば以下のようにHTMLを書いた場合、 tableとtdのスタイルシート指定により、 外枠と内枠で罫線がかさなり、 若干太くなってしまいます。 細くしたいのですが、どうすれば出来るのでしょうか? <table style="{border:1px solid #000000;border-spacing:0px}"> <tr> <td style="{border:1px solid #000000;padding:0px}">あああ </td> <td style="{border:1px solid #000000;padding:0px}">いいい </td> </tr> </table>

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

    テーブルに関する質問です。 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
  • スタイルシートをhead内で定義したい

    下のテーブルのようにしたいんですが、上のテーブルはすきまができています。 このすきまをなくすために、<STYLE>の中を修正してください。 <TABLE>内は変更せずに<STYLE>だけでできるはずです。 <HTML> <HEAD> <STYLE> table.ccc{border:solid;border-color:#bbbbcc} td.ccc{border:solid;border-color:#bbccbb} .ccc th{border:solid;border-color:#ccbbbb} </STYLE> </HEAD> <BODY> <TABLE class="ccc"> <TR class="ccc"> <TH>名前</TH> <TH>住所</TH> </TR> <TR class="ccc"> <TD class="ccc">太郎</TD> <TD class="ccc">東京都新宿区</TD> </TR> <TR class="ccc"> <TD class="ccc">花子</TD> <TD class="ccc">沖縄県那覇市</TD> </TR> </TABLE> <br> <TABLE cellspacing=0 style="border:solid 4px #ddddee"> <TR> <TH style="border:solid 4px #eedddd">名前</TH> <TH style="border:solid 4px #eedddd">住所</TH> </TR> <TR> <TD style="border:solid 4px #ddeedd">太郎</TD> <TD style="border:solid 4px #ddeedd">東京都新宿区</TD> </TR> <TR> <TD style="border:solid 4px #ddeedd">花子</TD> <TD style="border:solid 4px #ddeedd">沖縄県那覇市</TD> </TR> </TABLE> </BODY> </HTML>

  • 外部スタイルシートへの記入方法について

    外部スタイルシートへの記入方法について 下記ボックスを利用したいのですが 外部ファイルにまとめて記載できたらと思いましたがどうも上手くいきません。 どなたか詳しい方にご教授願えないでしょうか、 よろしくお願い致します。 <div class="box_01"> この中にタイトルを記載と 本文を記載する </div> <TABLE width="400"><TR><TD> <DIV style="width : 400px"> <DIV style="border-width : 1px;border-color : #333333 ;border-style : solid"> <DIV style="border-width : 1px;border-color : #FFFFFF #999999 #999999 #FFFFFF;border-style : solid;"> <DIV style="background-color : #D0D0D0;padding : 1px"> <DIV style="padding : 3 3 4 3px;text-align : center">- タイトル -</DIV> <DIV style="border-width : 1px;border-color : #999999 #FFFFFF #FFFFFF #999999;border-style : solid;"> <DIV style="border : 1px #333333 solid;background-color : #FFFFFF;padding : 10px;"> <br><hr> ↓<BR> ↓<BR> <center> ↓<BR> ↓<BR> </center> ↓<BR> ↓<BR> <hr> </DIV> </DIV> </DIV> </DIV> </DIV> </TD></TR></TABLE> くれくれで恐縮ですがどうぞよろしくお願い致します。

    • ベストアンサー
    • CSS
  • CSSについて 初心者です。

    勉強中の身なんですが・・ このように設定した場合文章1と文章2が大きく開く状態になるんですが、なぜでしょうか? また文章1セルの真ん中に表示され文章2が左にひょうじされるのも分りません・・・・ いろいろ調べてみたんですが中々納得ができなくて・・・ 特にこうういう風にやりたいとかは特になくて、なんでこうなるのかが知りたいのです。 詳しい方説明して頂けるとありがたいです。すみませんがよろしくお願い致しますm(。。)m 「HTML」 <table> <tr> <th>見出し</th> <th></th> <th>&nbsp;</th> <th>&nbsp;</th> </tr> <tr> <td>内容</td> <td>&nbsp;</td> <td>&nbsp;</td> <td></td> </tr> </table> 「CSS] table{ width:250px; border-collapse:collapse; border-width:1px; border-style:solid; border-color:#000000; border-spacing:0; } th{ border-width:1px; border-style:solid; border-color:#000000; } td{ border-width:1px; border-style:solid; }

    • ベストアンサー
    • HTML
  • クラス内のテーブルが全体に適用される

    .maintable TABLE, TD, TH { border: 2px #7d9ba4 dotted; border-collapse: collapse; padding: 5px; } 上記の記述を外部スタイルシートにて適用させているのですが、このテーブルの設定が、全体に適用されて困っています。 maintableクラス内のみの適用になると思っていたのですが、違うのでしょうか? .maintable LI { list-style-image: url(image/p008_11.gif); } 同じくこのような記述は、maintableクラス内のみにきちんと適用されているので、同じ要領かと思っていたのですが。 私の誤認でしたら、.maintableクラス内にのみ適用できるテーブルのスタイルの記入の仕方を教えていただきたいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • スタイルシートで罫線をもっと細くしたい

    IE6.0です、 テーブルの罫線をもっと細くしたいのですが、 border-widthは1pxが一番細いのでしょうか? この教えてgooくらい細くしたいのですが 他にやり方があれば教えてください。 TABLE { border-color: #8b4513; padding: 1px 1px 1px 1px; margin: 1px 1px 1px 1px; border-style: solid; border-width: 1px 1px 1px 1px; } 宜しくお願いします、

    • ベストアンサー
    • HTML