Как вы указываете заполнение таблицы в CSS? (таблица, а не заполнение ячеек)

У меня есть таблица с цветным фоном, и мне нужно указать отступы между таблицей и ее содержимым, I.E. клетки.
Тег таблицы, похоже, не принимает значение прокладки.
Firebug показывает таблицу и форму тета с заполнением 0, но не принимает значения, введенные для них, поэтому я думаю, что они просто не имеют свойства заполнения.
Но дело в том, что я хочу одно и то же разделение между ячейками, чем верхние ячейки со столом и нижними ячейками со столом внизу.
Опять же, то, что я хочу, не является добавлением ячеек.

EDIT: Спасибо, что мне действительно нужно, я понимаю теперь, был пограничный интервал или его эквивалент html, cellpacing.
Но по какой-то причине они ничего не делают на сайте, над которым я работаю.
Оба работают отлично на отдельном HTML, но на сайте они этого не делают.
Я думал, что это может быть какой-то стиль, переписывающий свойство, но привязка к ячейкам и встроенный интервал между границами не должны быть перезаписаны, верно?
(Я использую firefox)

РЕДАКТИРОВАТЬ 2: Нет, TD padding - это НЕ то, что мне нужно. С TD padding, верхняя и нижняя прокладки смежных ячеек суммируются, так что в два раза меньше места (накладка) между двумя ячейками, чем между верхней ячейкой и верхней границей таблицы. Я хочу иметь точно такое же расстояние между ними.

Ответ 1

Самый простой/наилучший способ - использовать <table cellspacing="10">

Способ css: border-spacing (не поддерживается 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>

Ответ 2

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

Ответ 3

Вот что вы должны понимать о таблицах... Они не являются деревом вложенных независимых элементов. Они представляют собой единый составной элемент. В то время как отдельные TDs ведут себя более или менее подобно элементам блока CSS, промежуточный материал (что-либо между TABLE и TD, включая TRs и TBODY) является неделимым и не попадает ни в встроенный, ни блок. Никакие случайные элементы 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>

Ответ 4

Вы не можете... Возможно, если бы вы разместили изображение желаемого эффекта, там был еще один способ его достижения.

Например, вы можете обернуть всю таблицу в DIV и установить дополнение к div.

Ответ 5

Смешно, я делал именно это вчера. Вам просто нужно это в файле css

.ablock table td {
     padding:5px;
}

затем заверните таблицу в подходящий div

<div class="ablock ">
<table>
  <tr>
    <td>

Ответ 6

С помощью css таблица может иметь дополнение независимо от своих ячеек.

Свойство заполнения не наследуется его дочерними элементами.

Итак, определяя:

table {
    padding: 5px;
}

Должен работать. Вы также можете указать браузеру, как использовать (или в этом случае, а не пэд) ваши ячейки.

td {
    padding: 0px;
}

EDIT: Не поддерживается IE8. К сожалению.

Ответ 7

Существует еще один трюк:

/* Padding on the sides of the table */
table th:first-child, .list td:first-child { padding-left: 28px; }
table th:last-child, .list td:last-child { padding-right: 28px; }

(Просто посмотрел на мою текущую работу)

Ответ 8

Вы можете попробовать свойство border-spacing. Это должно делать то, что вы хотите. Но вы можете увидеть этот ответ.

Ответ 9

CSS действительно не позволяет вам делать это на уровне таблицы. Как правило, я указываю cellspacing="3", когда хочу достичь этого эффекта. Очевидно, что это не css-решение, поэтому возьмите его за то, что он стоит.

Ответ 10

table {
    border: 1px solid transparent;
}

Ответ 11

table {
    background: #fff;
    box-shadow: 0 0 0 10px #fff;
    margin: 10px;
    width: calc(100% - 20px); 
}

Ответ 12

table.foobar
{
   padding:30px; /* if border is not collapsed */
}

or 

table.foobar
{
   border-spacing:0;
}
table.foobar>tbody
{
   display:table;
   border-spacing:0; /* or other preferred */
   border:30px solid transparent; /* 30px is the "padding" */
}

Работает в Firefox, Chrome, IE11, Edge.