2013-09-18 5 views
4

У меня есть таблица с несколькими строками, например пять строк. Мне нужно уменьшить разрыв между третьим и четвертым рядами.Уменьшить вертикальное пространство между двумя строками в таблице HTML

Ниже мой код:

<table> 
    <tr> 
     <td>First Row</td> 
     <td>1</td> 
    </tr> 
    <tr> 
     <td>Second Row</td> 
     <td>2</td> 
    </tr> 
    <tr> 
     <td>Third Row</td> 
     <td>3</td> 
    </tr> 
    <tr> 
     <td>Fourth Row</td> 
     <td>4</td> 
    </tr> 

В результате

Первая 1

Второй 2

Третий 3

Четвертый 4

Я хочу, чтобы удалить разрыв между третьей и четвертой строк, как показано ниже:

Первая 1

Второй 2

Третий 3
Четвертый 4

Можно ли установить отступы между третьей и четвертой строками только до 0? сократить разрыв между ними?

+0

Итак, что вы на самом деле имеете в виду, вы хотите, чтобы содержимое строк 3 и 4 отображалось бок о бок, правильно?Сопоставило бы содержимое строк 3 и 4 таким же, как и ширины строк 1 или 2? –

+0

Нет, он не будет иметь одинаковые ширины, он может меняться. строки 3 и 4 будут ниже друг друга, но промежуток между ними, заполнение или маржа не должны быть равны нулю. – user2480288

ответ

3

Стоит отметить, что пространство может быть уменьшено путем разрушения границ стола:

table { 
    border-collapse: collapse; 
} 

Вы могли бы сделать что-то подобное тому, что Юкки К. Корпела suggests и установить отступы всех элементов, кроме последнего tr ребенка, используя комбинацию псевдоклассов :not()/:last-child.

EXAMPLE HERE

tr:not(:last-child) td { 
    padding-top: 1em; 
} 

Приведенный выше пример работает в вашем случае, однако целевой элемент не может быть последним элементом. Поэтому вы можете использовать псевдокласс класса :nth-child() для задания нужного элемента.

EXAMPLE HERE

tr td { 
    padding-top: 1em; 
} 
tr:nth-child(4) td { 
    padding-top: 0; 
} 

Как вы можете видеть, этот подход работает, когда у вас есть несколько элементов:

enter image description here

+1

Теперь, когда я отредактировал вопрос, чтобы показать предполагаемое форматирование, этот ответ не является тем, чего хочет ассер. Кажется, он хочет, чтобы вертикальное пространство между строками уменьшалось, а не строки, которые должны быть расположены горизонтально рядом друг с другом. –

+1

Это было точное редактирование. Если вы посмотрите на [исходный вопрос Markdown исходного вопроса] (http://stackoverflow.com/revisions/32b3fdcf-0fba-4354-94dc-e1af4c56dc60/view-source), вы можете видеть, что искатель написал четвертую строку * ниже * третьей строки, а не рядом с ней. Это [Markdown] (http://daringfireball.net/projects/markdown/syntax#p), который объединяет строки текста. Если искатель действительно хотел, чтобы ряды были объединены, он написал бы их таким образом; таким образом, он, вероятно, был просто незнаком с Markdown, и не заметил, что его форматирование было испорчено. Можно ли вернуть вопрос обратно? –

+1

Прошу прощения за то, что я не понял моего вопроса, Рори О'Кейн был прав. Я хотел, чтобы вертикальное пространство между двумя строками уменьшалось. – user2480288

3

Если вы не используете специальные настройки в HTML, будет только пара пикселей между строками таблицы. Если вы действительно хотите удалить, что самый простой способ заключается в использовании

<table cellpadding=0 cellspacing=0> 

, а затем установить отступы по желанию, в CSS, на отдельных клетках, например, с

tr:not(:last-child) td { padding-top: 4px } 
+0

У меня много строк в столбце, и мне нужно было бы установить дополнение для отдельных ячеек. Есть ли способ установить прописку определенной строки в таблице на 0. – user2480288

+0

@ user2480288, да, но вам нужно указать, в какой строке в каком контексте, и вы должны либо уточнить это, отредактировав свой вопрос, а не только в комментарий или задать новый вопрос. –

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