• ベストアンサー

テーブル内のセル間にスペースを空けたい

tableタグとtr、tdを使って2行2列の表を作っています。 (1)それぞれのセルとセルの間にスペースを空けたいです。 (2)セルの中の文字の開始位置を1文字分程空けたいです。 CSSでの指定でも構いません。 tdやpにmarginを指定したり、cellpadingなど色々試しましたがうまく行きません。 どうかご教授をお願いします。

noname#194753
noname#194753
  • HTML
  • 回答数5
  • ありがとう数3

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

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

border-collapse:separateとborder-spacingで指定します。collpaddingは非推奨です。 セル内の余白はpaddingです。配置はtext-alignとvertical-alignを使用します。 tablekborderは本来、border-collapse:separateほほ分離ボーダーモデルのはずです。 仕様書にはcollpaceのはずなのですが。 また、border-spaceは0が仕様書なのですが、ブラウザは1px空けます。 ★tableの描画は仕様書どおりにブラウザが実装していないため、きちんと指定する必要があります。★ サンプル <table summary="sample1">  <caption>価格表</caption>  <tbody>   <tr>    <th abbr="name">商品名</th><th abbr="コード">商品コード</th><th abbr="price">価格</th>   </tr>   <tr>    <th abbr="no1">商品1</th><td>0012</td><td>\1,200-</td>   </tr>   <tr>    <th abbr="no2">商品2</th><td>0012</td><td></td>   </tr>   <tr>    <th abbr="no3">商品3</th><td>0013</td><td>\1,500-</td>   </tr>  </tbody> </table> という表があるとします。 ★ひとつずつ宣言を追加して確認すること。 まずセレクタでこの表を特定します。 table[summary="sample1"]{}/* 要素セレクタを使います。*/ 次に表の枠線について指定します。 /* table要素のborder */ table[summary="sample1"]{ border:solid 2px black; } /* table要素の背景 */ table[summary="sample1"]{ background-color:yellow; } /* セルの指定 */ table[summary="sample1"] th, table[summary="sample1"] td{ border:solid 1px gray; } /*背景色を指定します。 */ table[summary="sample1"] th{ background-color:silver; } table[summary="sample1"] td{ background-color:lime; } /* セル間が開いていると思います。 その間隔を指定してみます。 */ table[summary="sample1"]{ border-collapse:separate;/* separate指定する */ border-spacing:10px 4px; /* 最初の値が上下 ふたつ目の値が左右、ひとつだけだと周囲 */ } /* 内容のないセルの表示・非表示 */ table[summary="sample1"]{ empty-cells:hide;/* showで見える。 */ } table[summary="sample1"] caption{ caption-side:left; font-weight:bold; } /* 今度はくっつける */ /* セル間が開いていると思います。 その間隔を指定してみます。 */ table[summary="sample1"]{ border-collapse:collapse;/* collapseを指定する */ border-spacing:0; }

noname#194753
質問者

お礼

お礼が遅くなり申し訳ありません。詳細なご回答ありがとうございました。

その他の回答 (4)

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.5

>tdやpにmarginを指定したり、cellpadingなど色々試しましたがうまく行きません。 どこかでミスしているのでしょうが、 ※ cellpading → cellpadding ※ tdのmarginは意味が違う。 それらを見つからなければ、正しい方法でも反映しませんよ・・・ 一応、下記が簡単なCSSです。 --------------------------- (1)全部のテーブル (2)全部ではないが複数のテーブル? (3)1つだけのテーブル? これによって考え方が変わるので、セレクタも違います。 見栄えの部分は、外部CSSで指定するのがスマートです。 padding つまり、セルの内側に隙間を設ける事ができます。 paddingは、上下左右4カ所のスペースを値で指定します。(1カ所~4カ所可能) この設定順は(左から書く順) padding: 上値 右値 下値 左値; のような順で各半角スペースで区切ります。 値は、px や em など。 (1)の全テーブルの場合、 cellpadingをテーブル毎に指定するよりも、 CSS一カ所で全てのテーブルセルを指定 CSSは、 table td{padding: 0.5em 0.6em 0.3em 1em;} (2)複数のテーブルの場合、 指定したいテーブルにclassを付ける HTMLで、 <table summary="○○の表" class="space1"> CSSで、 table.space1 td{padding: 0.5em 0.5em 0.3em 1em;} (3)1つだけテーブルを任意指定する場合、 #3-4さんの方法、または(2)の方法など、 通常のテーブルの他に1カ所以上(複数でもよい)の設置する場合

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

(2)セルの中の文字の開始位置を1文字分程空けたいです。 table[summary="sample1"]{padding-left:1em;} ですが、長文が入るのでしたら、<p>に指定するようにtext-indent:1emのほうが良いかもしれません。  emは、大文字のMに由来するfot-sizeを参照する単位です。

  • ponta1971
  • ベストアンサー率30% (361/1191)
回答No.2

>cellpadingなど色々試しましたがうまく行きません。 単につづりが違うってことはないでしょうか? cellpadding が正しいつづりです。 スタイルシートで指定する場合はtdに padding:1em; を指定でどうでしょうか?

回答No.1

ライン幅を太くするなら <table border cellspacing="数値"> セル内の間隔なら <table border cellpadding="数値"> で行けると思うのですが 質問の意図はこれで合ってますかね

関連するQ&A

  • テーブルのセル間に余白が空いてしまいます

    2行×2列と3行×2列のテーブルを1つずつ作成し、どちらのテーブルも1列目のセルは結合して画像を挿入し、2列目のセルに文字を入力するというスタイルを取りたいです。 しかし、画像と文字の間(1列目と2列目の間)に余分な空白ができてしまいます。 margin、padding、cellspaceなどが必要ではないかと推測していますが、どこに埋め込むのか、自分なりに試しましたがわかりません。 htmlのコードとcssのコードを記しますので、どなたかお詳しい方お力を貸していただけませんでしょうか? また、もう1点困っていることが、テーブルとテーブルの間にスペース開けたいのですが、<br>はできるだけ使いたくありません。 divにmarginを指定して、テーブルタグの上に<div style="margin-top:10px"></div>とすればスペースは空きましたが、他に方法があれば合わせて教えていただけると嬉しいです。 <!-- htmlのコード --> <body> <table width="700" border="0" > <tr> <td><center> <img src="img/top_image.png" /> </center></td> </tr> <table class="table001"> <tr> <td rowspan="2"><img src="img/aaa.bmp" /></td> <td><h2>このサイトのごあんない</h2></td> </tr> <tr> <td><p>このサイトは~~~~~~</p></td> </tr> </table> <div style="margin-top:10px"></div> <table class="table001"> <tr> <td rowspan="3"><img src="img/bbb.bmp" /></td> <td><h2>このサイトのごあんない2</h2></td> </tr> <tr> <td> <p>このサイトは~~~~~~</p> <p>また、このサイトの~~~~~~。</p> </td> </tr> <tr> <td> <p>問い合わせ</p> <p>電話番号 000-000-0000</p> </td> </tr> </table> </body> /* CSSのコード */ body { background-color:#6C6; margin-top: 0px; margin-right: 0px; margin-left: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 0px; font-size: 0.8em; font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "MS Pゴシック", "MS P Gothic",sans-serif ; } #pageBody { width: 760px ; margin-top: 20px; margin-right: auto; margin-left: auto; background-color: #FFF; } table.table001{ background-color: #E8FECF; width: 700px; margin-left: auto; margin-right: auto; white-space:normal; } h2{ padding-left: 10px; background-color: #009900; width: 180px; color:#FFF; font-size: 1.1em; height: 25px; line-height:25px; }

    • ベストアンサー
    • HTML
  • tableタグ内で、空白セルでも罫線を表示させられるためのタグは

    次のように、1行×5列のテーブルがあります。 <html><body> <table border="1"> <tr> <td>1</td> <td></td> <td> </td> <td> </td> <td>&nbsp;</td> </tr> </table> </body></html> 1列目:文字列 1 2列目:未記入 3列目:半角スペース 4列目:全角スペース 5列目:文字実体参照の&nbsp; 2列目と3列目だけ、罫線が表示されないですが(セルがつぶれてみえる) わざわざ&nbsp;とかで<td>と</td>の間を埋めなくても、 罫線を明示的に表示させられるタグがあったと思いましたが、何だったでしょうか。

    • ベストアンサー
    • HTML
  • ホームページのテーブルをWordに貼り付けると左にづれる?

    以下のコードのHTMLで作られたテーブルをブラウザーに表示→コピー→Wordに貼り付けると、テーブルがWordの文字列開始位置よりも左側にづれてペーストされるのですが、どのようにして回避できるのでしょうか? コード: <table width="550" border="1" cellspacing="0" cellpadding="40"> <tr> <td width="466" colspan="2" align="center"> 表タイトル </td> </tr> <tr align="left" valign="top"> <td width="118"> 表見出し行 </td> <td width="266"> データ </td> </tr> </table> どうやら、テーブルのcellpaddingが関係しているようで、cellpaddingの値を以下のコードのように小さくすると、テーブルをWordに貼り付けたときに文字列開始位置よりも左にずれる割合は小さくなります。 コード: <table width="550" border="1" cellspacing="0" cellpadding="5"> <tr> <td width="536" colspan="2" align="center"> 表タイトル </td> </tr> <tr align="left" valign="top"> <td width="188"> 表見出し行 </td> <td width="336"> データ </td> </tr> </table> ただ、それでも少し左にずれることには変わりませんし、cellpaddingの値が大きなテーブルをWordに貼り付けるときの回避策とはなりません。 どのようにしたら、cellpaddingの値が0ではないホームページのテーブルをブラウザーからコピーしWordに貼り付けたとき、Wordの文字列開始位置より左にずれないようにできるのでしょうか? よろしくお願いします。

  • <table>でセルをきっちり分けるには

    最近CSSばかり使ってtableがよくわからないのですが、tableのセルのサイズを挿入する文字の数に限らず常に一定にするにはどんな方法があるでしょうか? 例えば600pxのtableに2列のセルを入れるにはそれぞれのセルに300pxを指定する方法もありますが、CSSでtableのtdタグに50%のwidthプロパティを指定しても問題ないでしょうか?

    • ベストアンサー
    • CSS
  • tableセルに色を付ける

     tableセルに色を付けます。  で、行で指定しようとtrタグにbgcolorをいれました。  ネスケでは問題ないのですが、ie6だとテーブルの外にも色がついてしまい変です。  セルを結合させたりしたりしてることが影響あるのでしょうか?ieのバグですかね?  コレを解決するには、trで色を付けるのを諦めて、セルごと(tdやth)に指定していくしかないのでしょうか。  スタイルシートは使わない前提です。htmlだけでの解決があったら教えてください。 <html> <head> </head> <body> <table border="10" align="center"> <tr> <th colspan="2">タイトル</th> </tr> <tr> <td height="70" rowspan="2" align="center" valign="top">1</td>  <td>あ</td> </tr> <tr>  <td>い</td> </tr> <tr bgcolor="red">  <td>2</td>  <td>う</td> </tr> </table> </body> </html>

    • ベストアンサー
    • HTML
  • ホームページのテーブルをWordに貼り付けると左にずれる?

    下記スレッドで解決しなかったので、こちらに移動してきました。 マルチスレッドを避けるため、下記スレッドは締め切ります。 http://oshiete1.goo.ne.jp/qa3829625.html 以下のコードのHTMLで作られたテーブルをブラウザーに表示→コピー→Wordに貼り付けると、テーブルがWordの文字列開始位置よりも左側にづれてペーストされるのですが、どのようにして回避できるのでしょうか? コード: <table width="550" border="1" cellspacing="0" cellpadding="40"> <tr> <td width="466" colspan="2" align="center"> 表タイトル </td> </tr> <tr align="left" valign="top"> <td width="118"> 表見出し行 </td> <td width="266"> データ </td> </tr> </table> どうやら、テーブルのcellpaddingが関係しているようで、cellpaddingの値を以下のコードのように小さくすると、テーブルをWordに貼り付けたときに文字列開始位置よりも左にずれる割合は小さくなります。 コード: <table width="550" border="1" cellspacing="0" cellpadding="5"> <tr> <td width="536" colspan="2" align="center"> 表タイトル </td> </tr> <tr align="left" valign="top"> <td width="188"> 表見出し行 </td> <td width="336"> データ </td> </tr> </table> ただ、それでも少し左にずれることには変わりませんし、cellpaddingの値が大きなテーブルをWordに貼り付けるときの回避策とはなりません。 どのようにしたら、cellpaddingの値が0ではないホームページのテーブルをブラウザーからコピーしWordに貼り付けたとき、Wordの文字列開始位置より左にずれないようにできるのでしょうか? >Word上で、コピペされた表をドラッグして好きな位置に移動 上記のようなご提案もありましたが、回数がすごく多いため単にコピペで行ないたいのです。 よろしくお願いします。

  • セルの高さを固定するには?

    2列2行のテーブルを作り、右の列をrowspan=2で結合しています。 右の列はテキストや画像を追加入力していくので、縦が長くなっていきます。 その際、左上のセルだけ高さを固定し、左下のセルは自動で高さが決まるようにしたいと思っています。 が、左上のセルにheight=150と入力しても、右が伸びるにつれて長くなってしまいます。 CSSで指定しても同じです。 rowspanを使うと、結合していないセルの高さを固定することはできないのでしょうか。 良い解決策がありましたら、お知恵をお貸し下さい。 <table> <tr> <td>ここを固定したいです</td> <td rowspan="2">ここが長くなっていきます</td> </tr> <tr> <td>ここは右が長くなるにつれて自動で伸びるようにしたいです</td> </tr> </table>

    • ベストアンサー
    • HTML
  • tableの横の位置を変えるには??

    <div> <table> <tr><td>あ</td><td>い</td></tr> <tr><td>う</td><td>え</td></tr> </table> </div> が仮にあったとして、これを外部CSSファイルでどこかのタグに text-align:center を適用させ、テーブルの位置を真ん中にさせたい(表のような使い方です)んですが、自分でやってみたら、divとtableにIDとclassで両方試して適用させましたができませんでした。 この表の横の位置をブロックとしてとらえて移動させることはできる でしょうか??

    • ベストアンサー
    • HTML
  • テーブルのセルの高さ

    テーブルのセルの高さを設定するには、HEIGHT=で設定すればいいと思うのですが、 たとえば、わかりやすい例でいうと、 <HTML> <BODY> <TABLE BORDER=1> <TR><TD VALIGN="top">セルA</TD> <TD VALIGN="top" ROWSPAN="2"> <TABLE BORDER=1> <TR><TD>セルB-1</TD><TD>セルB-2</TD></TR> <TR><TD>セルB-3</TD><TD>セルB-4</TD></TR> <TR><TD>セルB-5</TD><TD>セルB-6</TD></TR> <TR><TD>セルB-7</TD><TD>セルB-8</TD></TR> <TR><TD>セルB-9</TD><TD>セルB-10</TD></TR> <TR><TD>セルB-11</TD><TD>セルB-12</TD></TR> <TR><TD>セルB-13</TD><TD>セルB-14</TD></TR> </TABLE> </TD></TR> <TD VALIGN="top">セルC</TD></TR> </TABLE> </BODY> </HTML> というテーブルの場合、セルAとセルCの境界はセルBの高さの真中くらいに なると思います。 それで、セルAとセルCの内容は固定なのですが、セルB内のテーブルはcgiからの 書き出しで可変長です。 実現したいことは、セルBの大きさにかかわらず、セルAの高さを固定したいのです。 セルCはセルBの高さと連動して可変するようにテーブルを組みたいのですが、 どのように指定すれば実現できるでしょうか? セルAにHEIGHT指定してもなぜか、無視(?)されてしまいます・・・ よろしくお願いします。

  • tableのセル高さの固定法

    下記のようなTABLEがあるとします. 右の列は縦3行を連結した1つのセルになっています. また左上の「1」のセルの高さは,50PIXとなっています. いま,右列セルの内容が増えて,table全体の高さが増した場合, 「1」セルはその高さ指定50PIXを無視して拡がってしまいます. このような状況を回避して,右列セルの高さがどうあろうとも 「1」セルの高さを固定する方法を教えて下さい. (例えば,右列セルが高くなった場合,  「1」セルと固定する代わりに「3」セルを拡げて全体の高さを確保する,など) <TABLE border="1"> <TBODY> <TR> <TD HEIGHT="50PIX">1</TD> <TD ROWSPAN=5> ●あ<br> ●あ<br> ●あ </TD> </TR> <TR> <TD>2</TD> </TR> <TR> <TD>3</TD> </TR> </TBODY> </TABLE>

専門家に質問してみよう