2010-11-25 4 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

Вам не нужно писать '0px' вместо' 0'? – thejh

+2

@thejh: nope. Нуль равен нулю. '0px' совпадает с' 0em' или '0cm', поэтому вы можете (и, возможно, должны) просто написать' 0'. –

+0

@Paul D. Waite: ah, ok – thejh

ответ

0

В исходном макете измените ширину второго td на *. Что происходит, так это то, что таблица, и поэтому строка имеет фиксированное количество ширины для заполнения, а механизм компоновки делится ею между ячейками.

Если вы хотите использовать divs, то, как говорит Себастьян, используйте display: inline-block.

+0

Бинго! Звездочка работала! Теперь, не могли бы вы объяснить, что это? :) Это говорит: «Возьмите все, что осталось после первого td»? –

+0

Не пытайтесь проникнуть в тайны священной звездочки! –

+0

Но, э-э, да. Именно это. –

2

Попробуйте

table.skinny { border-collapse:collapse; } 

EDIT: Если у вас есть одинокий образ в тд, display:block избавится от спускового пространства.

Кроме того, вы можете общаться с line-heighth1 и устанавливать его на 1 или что-то в этом роде.

0

делать ли это что-нибудь?

table.skinny { 
    border-spacing: 0; 
} 

И хотя это не по теме, несколько нулей имеют тот же эффект, как только один ноль:

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

Попробуйте

.skinny { поплавок: правый }

Смежные вопросы