CSS: как создать разрыв между строками в таблице?
Это означает, что результирующая таблица выглядит менее так:
[===ROW===] [===ROW===] [===ROW===] [===ROW===]
... и еще вот что:
[===ROW===] [===ROW===] [===ROW===] [===ROW===]
Я пробовал добавлять
margin-bottom:1em;
как td и tr но ничего не получил. Есть идеи?
11 ответов:
table { border-collapse: collapse; } td { padding-top: .5em; padding-bottom: .5em; }
ячейки не будут реагировать ни на что, если вы не установите границу-свернуть первым. Вы также можете добавить границы к элементам TR после их установки (среди прочего.)
Если это для макета, я бы перешел к использованию DIVs и более современных методов макета, но если это табличные данные, выбейте себя. Я все еще активно использую таблицы в своих веб-приложениях для данных.
все, что вам нужно:
table { border-collapse: separate; border-spacing: 0 1em; }
это предполагает, что вы хотите 1em вертикальный зазор, а не горизонтальный зазор. Если вы делаете это, вы, вероятно, также должны смотреть на управление высотой линии.
странно, что некоторые из ответов, которые люди дали, включают border-collapse: collapse, эффект которого прямо противоположен тому, что задал вопрос.
если у вас нет границ, или есть границы и хотите, чтобы интервал внутри ячеек, вы можете использовать
padding
илиline-height
. Насколько я знаю, маржа не влияет на ячейки и строки.
Свойство CSS для интервала ячеек -border-spacing
, но он не работает на IE6/7 (так что вы можете использовать его в зависимости от вашей толпы).если все остальное не удается, вы можете использовать старый в разметке, но это также даст вам интервал между столбцами. Некоторые сброс CSS предлагаю вам установить его в любом случае, чтобы получить кросс-браузер поддержка:
/* таблицы все еще нужны
cellspacing="0"
в разметке */
Если ни один из других ответов не является удовлетворительным, вы всегда можете просто создайте пустую строку и стиль его с CSS соответствующим образом, чтобы быть прозрачным.
просто u может использовать
padding-top
иpadding-bottom
наtd
элемент.Unit может что-нибудь из этого списка-
Демо-Код-
td { padding-top: 10px; padding-bottom: 10px; }
<table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> <tr> <td>Peter</td> <td>Griffin</td> </tr> <tr> <td>Lois</td> <td>Griffin</td> </tr> </table>
на мой взгляд, самый простой способ сделать это добавить дополнение к тегу.
td { padding: 10px 0 }
надеюсь, что это поможет вам! Ура!
вот так (я думал, что это невозможно):
сначала дайте таблице только вертикальный интервал границ (например, 5px) и установите его горизонтальный интервал границ в 0. Затем вы должны дать правильные границы каждой ячейки строки. Например, самая правая ячейка в каждой строке должна иметь границы сверху, снизу и справа. Самые левые ячейки должны иметь границу сверху, снизу и слева. А остальные ячейки между этими 2 должны иметь только границу сверху и снизу. Вроде этого пример:
<table style="border-spacing:0 5px; color:black"> <tr> <td style="border-bottom:thin black solid; border-top:thin black solid; border-left:thin black solid;">left-most cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid; border-right:thin black solid;">right-most cell</td> </tr> <tr> <td style="border-bottom:thin black solid; border-top:thin black solid; border-left:thin black solid;">left-most cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid; border-right:thin black solid;">right-most cell</td> </tr> <tr> <td style="border-bottom:thin black solid; border-top:thin black solid; border-left:thin black solid;">left-most cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid;">other cell</td> <td style="border-bottom:thin black solid; border-top:thin black solid; border-right:thin black solid;">right-most cell</td> </tr> </table>
заполнение в TD работает, если вы хотите, чтобы пространство имело тот же цвет фона, что и td
в моем случае требование было для пробела между строкой заголовка и тем, что было над ним
применяя этот стиль к одной ячейке, я смог получить желаемое разделение. Не нужно было добавлять его во все ячейки... Возможно, не самый элегантный, но, возможно, более элегантный, чем разделительные ряды.
<td colspan="10"> <div class="HeaderRow" style="margin-top:10px;"> <%# Eval("VendorName")%> </div> </td>
Если вы придерживаетесь дизайна с использованием таблиц, лучшей идеей будет дать пустую строку без содержимого и заданной высоты между каждой строкой в таблице.
вы можете использовать div, чтобы избежать этой сложности. Просто дайте маржу каждому div.
вы также можете просто изменить высоту для каждой строки с помощью CSS.
<head> <style> tr { height:40px; } </style> </head> <body> <table> <tr> <td>One</td> <td>Two</td> </tr> <tr> <td>Three</td> <td>Four</td> </tr> <tr> <td>Five</td> <td>Six</td> </tr> </table> </body>
вы также можете изменить высоту
<td>
элемент, он должен дать вам тот же результат.
добавьте следующее правило в tr, и оно должно работать
float: left
пример (откройте ее в браузере IE9 конечно. :) ): http://jsfiddle.net/zshmN/
EDIT: это не законное или правильное решение, как указано многими, но если у вас нет выбора и вам нужно что-то, это будет работать в IE9.
Так что все те, кто дает вниз голоса, пожалуйста, сообщите нам правильное решение, а также