• ベストアンサー

スタイルシートのせい?IEのせい?

自己サイトのリニューアルに伴い、今までゴチャゴチャだったHTMLソースをHTML+CSSで簡潔にしたい、と思って作業を開始したのですが、例えば下記のように (外部スタイルシート) TABLE{ padding-top : 5px;padding-left : 5px;padding-right : 5px;padding-bottom : 5px; border-width : 1px 1px 1px 1px;border-style : solid solid solid solid;border-color : black black black black;} (HTMLその1) <table width="500"><tbody><tr> <td>あああああ</td> </tr></tbody></table> (HTMLその2) <table border="0" cellpadding="0" cellspacing="0" width="500"><tbody><tr> <td>あああああ</td> </tr></tbody></table> と記述しIE6で確認したところ、その2では思った通りの余白(padding)ができるのに、その1ではできませんよね。 CSSに関するページを読みあさる限りではその1の記述の方が正しいと思われるのですが・・・ CSSでpaddingを指定しているのに、わざわざHTMLで0にしなきゃいけないのが納得いかない・・・ これは私のCSSの記述の仕方が悪いのでしょうか? それともIEの解釈によるもの? 本当は上記のようなレイアウトも<div>でやりたいのですが、まだ抵抗があって・・・ このままでは結局以前と同じゴチャゴチャのHTMLソースになってしまいそうです・・・ ちなみにエディタはHPBv6をメインで使っていますが、最終的にはテキストエディタで手直ししています。 他のブラウザではまだ動作未確認です。

  • umeda
  • お礼率60% (27/45)
  • CSS
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • quads
  • ベストアンサー率35% (90/257)
回答No.2

table要素とtd要素は隔離できません。 cellspacing="0" によって内枠の太さが0になり、 table要素のpaddingがtd要素に適用されることで、 > その2では思った通りの余白(padding)ができる のです。(多分。 普通にtd要素内にpaddingを取りたかったら、>>#1の方の通りです。 th,td{padding : 5px;} テーブルの周りに枠線を付けるなら、 table{border:1px solid black;} でよいかもしれません。 セルの枠線を重ねてしまうのであれば、 table要素に{border-collapse:collapse}を指定してください。 cellspacing="0"と同じようなものです。 セルの枠線を重ねずに表示したいなら、普通に <table border="1"> と、border属性を指定してください。 このような感じで如何でしょうか。

umeda
質問者

お礼

丁寧な解説ありがとうございました。 我ながらtableとtdの要素を混同していたようです。 ご教示いただいた方法を色々なパターンで試してみましたが、上手くいきました。 どうもありがとうございました。

その他の回答 (1)

回答No.1

tableではなくてtdにスタイルを指定すればいいんじゃないですか。 あと話はそれますが、通常全方向同じ指定する場合はひとつにまとめることが出来るのですが。 TABLE{ padding-top : 5px;padding-left : 5px;padding-right : 5px;padding-bottom : 5px; border-width : 1px 1px 1px 1px;border-style : solid solid solid solid;border-color : black black black black;}     ↓ th,td{ padding: 5px; border-width : 1px; border-style : solid; border-color : black; }

umeda
質問者

お礼

「ひとつにまとめることが出来る」件、ご教示ありがとうございました。 やはりエディタに頼っていてはいけませんねー。もっと勉強します。

関連するQ&A

  • スタイルシートテーブルの罫線を細くしたい

    例えば以下のように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>

  • スタイルシートのテーブル枠について

    今までテーブルを利用してホームページに簡単な線を つけていました。これをスタイルシートで行うと 微妙にうまくできません・・・お助けください。 すべてIEで検査しております。 html従来の私の線の引き方 <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td bgcolor="#000000"> <img src="sps.gif" width="600" height="1"> </td> </tr> </table> 上記の表現をスタイルシートを利用してやりたいのですが 線が1pxのはずが、大きくなってしまいます。 cssを利用した記述 css部分 .index_table{ width: 600px; border:0px; border-width: 0px; margin: 0px; padding: 0px; } html部分 <table class="index_table"> <tr> <td bgcolor="#000000"> <img src="ims/sps.gif" width="600" height="1"> </td> </tr> </table> これに似たいい方法は、ないでしょうか? 質問が、うまくまとまってなくてすみません・・・

    • ベストアンサー
    • HTML
  • 表の作成をスタイルシートで

    皆さんは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
  • タグに直接書き込むスタイルシートを、外部あるいはページ内にわけるには?

    下記テンプレートソースですが、タグに直接書き込むスタイルシートになっています。 このソースを、外部あるいはhead内に設定するには、どういうわけ方をしたらいいですか? いろいろ自分で試したのですが、うまく表示されません宜しくお願いします。 <table><tbody><tr><td> <div style="border:1px solid #ff6699;background:#ffcccc;font-size:13px"><div style="padding:3px" align="center"> * ここにタイトル * </div><div style="border-top:1px solid #ff6699;background:#fff;padding:10px" align="left"> * ここに本文 * </div></div> </td></tr></tbody></table>

    • ベストアンサー
    • HTML
  • スタイルシートについて

    <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD><IMG src="i1.gif" width="64" height="64" border="0"></TD> <TD><IMG src="i2.gif" width="64" height="64" border="0"></TD> </TR> <TR> <TD><IMG src="m1.gif" width="32" height="32" border="0"></TD> <TD><IMG src="m2.gif" width="32" height="32" border="0"></TD> </TR> </TBODY> </TABLE> </BODY> </HTML> こういったTableを使った表がある場合、スタイルシートで示すことは出来ますか?もし出来るならそのソースを教えてください。 また、こういったTableのホームページを一括でスタイルシートに変換できるソフトが存在していたら教えてください。 それと、この行数がかなり大きくなると、Tableよりも軽く表示がされると聞いたのですが本当でしょうか? ご返答、何卒、よろしくお願い致します。

    • ベストアンサー
    • HTML
  • スタイルシートを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+<li>などを使って)でするにはどうしたらいいのでしょうか? <table border="0" width="150"> <tr> <td>なんでだろう~</td> </tr> <tr> <td>CSS is cool</td> </tr> </table> よろしくお願いします。

    • ベストアンサー
    • CSS
  • IEで細い線

    こんにちはー。 cssでテーブルの線を細くするために こんな感じでやってみました。 クロームでは出来たのですが IE(バージョン9)で閲覧すると、線そのものが表示されません IEでも表示させるには、どーすればいいですか? ―――― <html> <head> <style type="text/css"> table[summary="WebDesign"]{ border-collapse: collapse; width: 400px; } table[summary="WebDesign"],table[summary="WebDesign"] td{ border:solid 1px #1C79C6; } </style> </head> <body> <table summary="WebDesign"><!-- summaryは必須 TBODY+ -->  <tbody><!-- tbodyはひとつ以上必須 -->   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>  </tbody> </table> </body> </html>

    • ベストアンサー
    • CSS
  • テーブル入れ子した時の、テーブル外枠罫線を非表示にしたい

    下記のように、入れ子にしたテーブルを作成しましたが、「AA, BB, 10, 20」のテーブル外枠線が太くなってしまいます。全て細い線で表示させるには、入れ子にしたテーブル外枠罫線を非表示にすれば良いのかなと思うのですが、どうすればよろしいでしょうか? また他によい方法があればアドバイスお願いします。 条件として、 (1)入れ子でテーブルを作成 (2)教えて!gooのように細い線を使用 です。 よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <STYLE TYPE="text/css"> <!-- TABLE { margin: 0px; border: 1px solid #ff0000; border-collapse: collapse; } TD { padding: 0px; border-style: solid; } --> </STYLE> <TITLE></TITLE> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD>みかん</TD> <TD>バナナ</TD> <TD>パイン</TD> </TR> <TR> <TD>やさい</TD> <TD> <TABLE width="100%" border="1"> <TBODY> <TR> <TD>AA</TD> <TD>BB</TD> </TR> <TR> <TD>10</TD> <TD>20</TD> </TR> </TBODY> </TABLE> </TD> <TD>りんご</TD> </TR> <TR> <TD>いちご</TD> <TD>すいか</TD> <TD>れもん</TD> </TR> </TBODY> </TABLE> </BODY> </HTML>