2010-11-25 12 views
0

私は余裕、パディングやボーダーを持たないskinny CSSクラスを作成しました:このテーブルレイアウトをCSSレイアウトに変更するにはどうすればよいですか?

.skinny 
{ 
    margin:0 0 0 0; 
    padding:0 0 0 0; 
    border:0 0 0 0; 
} 

そして、私もそれに適用 skinnyクラスがある画像含む行にそれを適用:

<td width="33%" align="center" class="skinny"> 
    <table width="400px" height="180px" class="skinny"> 
     <tr class="skinny"> 
      <td class="skinny" width="60px" height="100px"><a class="skinny" href="/"><img class="skinny" width="60px" height="100px" id="snapshot" src="/images/snapshot.png"></a></td> 
      <td class="skinny" width="120px" height="100px"><a class="skinny" href="/"><h1 class="skinny">Product</h1></a></td> 
     </tr> 
    </table> 
</td> 

私は画像が次のセルの<h1>テキストのできるだけ近くに表示されるようにしようとしているので、それらは左から右にお互いに押し上げられます。

skinnyクラスをいくつ適用しても、画像とテキストの間にスペースを作成する各テーブルセルの周りに「パディング」のようなものがあるようです。

画像をテキストの左に直接配置するCSSレイアウトを作成するには、何もする必要がありますか?

私はこの試みた:

<td width="33%" align="center" class="skinny"> 
    <div class="skinny" width="60px" height="100px"><a class="skinny" href="/"><img class="skinny" width="60px" height="100px" id="snapshot" src="/images/snapshot.png"></a></div> 
    <div class="skinny" width="120px" height="100px"><a class="skinny" href="/"><h1 class="skinny">Product</h1></a></div> 
</td> 

をしかし、それは、テキストの上に画像を置きます。

+0

'0'の代わりに' 0px'を書かなくてもいいですか? – thejh

+2

@thejh:nope。ゼロはゼロです。 '0px'は' 0em'や '0cm'と同じですので、' 0'だけ書くことができます(また間違いなく)。 –

+0

@Paul D. Waite:ああ、ok – thejh

答えて

0

元のレイアウトでは、2番目のtdの幅を*に変更します。何が起こっているのかは、テーブルとその行が一定量の塗りつぶし幅を持ち、レイアウトエンジンがそれをセル間で共有していることです。

divを使用する場合は、セバスチャンによれば、display: inline-blockを使用します。

+0

ビンゴ!アスタリスクは機能しました!さて、あなたはそれが何をしたのか気になりますか? :)それは "最初のtdの後に残されたスペースを取る"と言っていますか? –

+0

神聖なアスタリスクの謎を突き抜こうとしないでください! –

+0

しかし、そうです。まさにその。 –

2

table.skinny { border-collapse:collapse; } 

EDITしてみてください:あなたはTDで唯一のイメージを持っている場合、display:blockがディセンダースペースを取り除くでしょう。

また、h1line-heightを混乱させて、1などに設定することもできます。

0

をこれは何をするのでしょうか?

table.skinny { 
    border-spacing: 0; 
} 

そして、それはオフトピックですが、いくつかのゼロがただ1つのゼロと同じ効果を持っている:

.skinny 
{ 
    margin: 0; 
    padding: 0; 
    border-style: none; 
} 
0

.skinny { フロート:右 }試してみてください

関連する問題