Как указать заполнение таблицы в CSS? (таблица, а не заполнение ячеек)
У меня есть таблица с цветным фоном, и мне нужно указать заполнение между таблицей и ее содержимым, т. е. ячейками.
Тег таблицы, похоже, не принимает значение заполнения.
Firebug показывает таблицу и макет tbody с заполнением 0, но не принимает никакого значения, введенного для них, поэтому я думаю, что у них просто нет свойства заполнения.
Но дело в том, что я хочу такое же разделение между ячейками, чем верхние ячейки с верхней частью таблицы и нижние ячейки с стол внизу.
Опять же, то, что я хочу, это не заполнение ячеек.
EDIT: спасибо, то, что мне действительно нужно, я понимаю сейчас, было border-spacing или его эквивалент html, cellspacing.
Но по какой-то причине они ничего не делают на сайте, над которым я работаю.
Оба отлично работают на отдельном HTML, но на сайте они этого не делают.
Я думал, что это может быть какой-то стиль перезаписи свойства, но пространство ячеек и встроенный интервал границ не должны перезаписываться, верно?
(Я используйте firefox)
EDIT 2: нет, td padding-это не то, что мне нужно. При заполнении TD верхние и нижние прокладки соседних ячеек суммируются, поэтому между двумя ячейками есть двойное пространство (на самом деле), чем между верхней ячейкой и верхней границей таблицы. Я хочу иметь точно такое же расстояние между ними.
11 ответов:
самый простой/лучший способ заключается в использовании
<table cellspacing="10">
путь css: расстояние между границами (не поддерживается IE я не думаю)
<!-- works in firefox, opera, safari, chrome --> <style type="text/css"> table.foobar { border: solid black 1px; border-spacing: 10px; } table.foobar td { border: solid black 1px; } </style> <table class="foobar" cellpadding="0" cellspacing="0"> <tr><td>foo</td><td>bar</td></tr> </table>
Edit: если вы просто хотите, чтобы заполнить содержимое ячейки, а не пространство их вы можете просто использовать
<table cellpadding="10">
или
td { padding: 10px; }
вы можете установить маржу для таблицы. Кроме того, оберните таблицу в div и используйте прокладку div.
вот что вы должны понимать о таблицах... Они не являются деревом вложенных независимых элементов. Они представляют собой единый составной элемент. В то время как отдельные TDs ведут себя более или менее как элементы блока CSS, промежуточный материал (что-либо между таблицей и TD, включая TRs и TBODYs) неделим и не попадает ни в один inline, ни блок. Никакие случайные HTML-элементы не допускаются в этом пространстве другого измерения, и размер таких другое-мерное пространство не настраивается вообще через CSS. Только HTML
cellspacing
свойство может даже добраться до него, и это свойство не имеет аналога в CSS.Итак, чтобы решить вашу проблему, я бы предложил либо обертку DIV, как предлагает другой плакат, или если вы абсолютно должны держать ее в таблице, у вас есть этот уродливый мусор:
<style> .padded tr.first td { padding-top:10px; } .padded tr.last td { padding-bottom:10px; } .padded td.first { padding-left:10px; } .padded td.last { padding-right:10px; } </style> <table class='padded'> <tr class='first'> <td class='first'>a</td><td>b</td><td class='last'>c</td> </tr> <tr> <td class='first'>d</td><td>e</td><td class='last'>f</td> </tr> <tr class='last'> <td class='first'>g</td><td>h</td><td class='last'>i</td> </tr> </table>
забавно, я делал именно это вчера. Вам просто нужно это в вашем css-файле
.ablock table td { padding:5px; }
затем оберните таблицу в подходящий div
<div class="ablock "> <table> <tr> <td>
вы не можете... Может быть, если вы разместили фотографию желаемого эффекта есть другой способ его достижения.
например, вы можете обернуть всю таблицу в DIV и установить дополнение к div.
С помощью css таблица может иметь заполнение независимо от ее ячеек.
свойство padding не наследуется его детьми.
Итак, определение:
table { padding: 5px; }
должны работать. Вы также можете специально указать браузеру, как прокладывать (или в этом случае не прокладывать) ваши ячейки.
td { padding: 0px; }
EDIT: не поддерживается IE8. Извиняюсь.
вы можете попробовать свойство border-spacing. Это должно делать то, что вы хотите. Но вы можете захотеть увидеть это ответ.
CSS на самом деле не позволяет вам делать это на уровне таблицы. В общем, я указываю
cellspacing="3"
когда я хочу добиться этого эффекта. Очевидно, что это не решение css, поэтому возьмите его за то, что оно стоит.