2013-07-03 21 views
5

のタグが2つのtbodyタグの間に隙間があるように、これらのタグが両方ともインラインで表示されている場合、その隙間をなくす方法はありますか?tbodyタグ間の隙間を取り除く

http://jsfiddle.net/kttss/

what the html renders

わずかな隙間がある2つのテーブル間であなたは、フィドルに見ることができるように。私は負のマージンを使ってこれを手動で取り除くことができることを知っていますが、tbodyの可変数のテーブルがあるので、これは面倒です。

<table style="margin:0;" border="1"> 
    <tbody style="display: inline-block; margin:0;"> 
     <tr> 
     <td> 
      1 
     </td> 
     <td> 
      2 
     </td> 
     </tr> 
     <tr> 
     <td> 
      3 
     </td> 
     <td> 
      4 
     </td> 
     </tr> 
    </tbody> 
    <tbody style="display: inline-block; margin: 0;"> 
     <tr> 
     <td> 
      1 
     </td> 
     <td> 
      2 
     </td> 
     </tr> 
     <tr> 
     <td> 
      3 
     </td> 
     <td> 
      4 
     </td> 
     </tr> 
    </tbody> 
</table> 
+1

これは興味深いことです。あなたの写真は本当に問題を表示しませんが、それはあなたのフィドルで明らかです –

+0

2つのインライン 'tbody'が必要な具体的な理由はありますか?なぜそれらを1つに入れないのですか? –

答えて

15

あなたのtable要素にborder-spacing: 0;を追加するように見えます。これがなければ、各境界を囲む2つのピクセルがあります。つまり、テーブル間に4ピクセルあります。

+1

あなたの答えは[フィドル](http://jsfiddle.net/kttss/8/)です。私は、あなたのフィドルがChromeでうまく動作するにもかかわらず、Firefoxはtbodyの間のスペースをレンダリングするので、あなたはまだtbody(ies)の間の空白を削除/コメントアウトする必要があると思います。とにかく素晴らしい追加のための+1。 –

4

inline-blockの代わりにfloatを使用してください。また、境界線をborder-collapse:collapseで崩壊させるか、@ JoeEnosの答えのようにborder-spacing: 0を使用する必要があります。 display: inline-block

Demo

table { border-collapse:collapse; } 
tbody { float:left; } 

、マークアップに空白(改行は、タブ)は崩壊し、単一のスペースとしてレンダリングされています。 floatはこの影響を受けません。

+0

境界線を崩す必要はありませんが、より統一された外観になります。 –

+0

@CodyGuldnerはい、崩壊することなく、テーブルとtbodyの間に奇妙なパディングがあります。 '=]' border-spacing:0は@ Joeの答えと同じようにこの問題を解決します。 –

関連する問題