В моем HTML-документе у меня есть таблица с двумя столбцами и несколькими строками. Как я могу увеличить пространство между первым и вторым столбцами с помощью CSS? Я пробовал применить "margin-right: 10px;" к каждой ячейке с левой стороны, но безрезультатно.
96
Ответы:
Примените это к своему первому
<td>
:Пример HTML:
источник
border-collapse: separate
separate
border-spacing: 5px;
border-spacing
также добавляет пространство между рядами. К сожалению, нет отдельного свойства для вертикального и горизонтального интервала.border-spacing
принимает два аргумента - один для горизонтального и один для вертикального.Предупреждение: хотя это
padding-right
может решить вашу конкретную (визуальную) проблему, это неправильный способ добавлять интервалы между ячейками таблицы. То, чтоpadding-right
делает для ячейки, аналогично тому, что она делает для большинства других элементов: она добавляет пространство внутри ячейки. Если у ячеек нет границы, цвета фона или чего-то еще, что выдает игру, это может имитировать эффект установки пространства между ячейками, но не иначе.Как кто-то заметил, спецификации полей игнорируются для ячеек таблицы:
Спецификация CSS 2.1 - Таблицы - Визуальное оформление содержимого таблицы
Какой же тогда «правильный» путь? Если вы хотите заменить
cellspacing
атрибут таблицы, тоborder-spacing
(сborder-collapse
отключенным) - это замена. Однако, если требуются "поля" для каждой ячейки, я не уверен, как этого можно правильно добиться с помощью CSS. Единственный прием, который я могу придумать, - это использовать,padding
как указано выше, избегать какого-либо стиля ячеек (цвета фона, границы и т.д.) и вместо этого использовать контейнерные DIV внутри ячеек для реализации такого стиля.Я не эксперт по CSS, поэтому могу ошибаться в приведенном выше (что было бы здорово знать! Мне тоже нужно решение CSS для полей таблицы).
Ура!
источник
Если вы не можете использовать отступы (например, у вас есть границы в td), попробуйте это
источник
Я понимаю, что это довольно поздно, но для записи вы также можете использовать селекторы CSS для этого (устраняя необходимость во встроенных стилях). Этот CSS применяет отступы к первому столбцу каждой строки:
И это будет ваш HTML без CSS !:
Это позволяет сделать разметку более элегантной, особенно в тех случаях, когда вам нужно выполнить большое количество специфического форматирования с помощью CSS.
источник
маржа, к сожалению, не работает для отдельных ячеек, однако вы можете добавить дополнительные столбцы между двумя ячейками, между которыми вы хотите поместить пробел ... другой вариант - использовать границу того же цвета, что и фон ...
источник
Вы можете просто сделать это:
CSS не требуется :) Это 10 пикселей - ваше пространство.
источник
Попробуй
padding-right
. Вам не разрешено ставитьmargin
символы между ячейками.источник
Использование border-collapse: отдельные; не сработало для меня, потому что мне нужен только отступ между ячейками таблицы, а не по бокам таблицы.
Я придумал следующее решение:
- CSS
- HTML
источник
Это решение работает как для
td
тех, такborder
иpadding
для стилизации.(Проверено в Chrome 32, IE 11, Firefox 25)
Обновлено 2016
Firefox теперь поддерживает его без
inline-block
и набораwidth
источник
Таким образом нельзя выделить отдельные столбцы в ячейке. На мой взгляд, лучший вариант - добавить
style='padding-left:10px'
во второй столбец и применить стили к внутреннему div или элементу. Таким образом можно добиться иллюзии большего пространства.источник
Если вы контролируете ширину таблицы, вставьте левый отступ во все ячейки таблицы и вставьте отрицательный левый край во всю таблицу.
Обратите внимание, что ширина таблицы должна включать ширину отступа / поля. Используя приведенный выше пример, визуальная ширина таблицы будет 700 пикселей.
Это не лучшее решение, если вы используете границы в ячейках таблицы.
источник
РЕШЕНИЕ
Я обнаружил, что лучший способ решить эту проблему - это сочетание проб и ошибок и чтения того, что было написано до меня:
http://jsfiddle.net/MG4hD/
Как видите, у меня происходят довольно хитрые вещи ... но главное, чтобы это выглядело хорошо:
РОДИТЕЛЬСКИЙ ЭЛЕМЕНТ (UL): граница-развал: отдельно; интервал между границами: 0,25 мкм; маржа слева: -.25em;
ДЕТСКИЕ ЭЛЕМЕНТЫ (LI): дисплей: таблица-ячейка; вертикальное выравнивание: средний;
HTML
CSS
источник
Следуя решению Cian по установке границы вместо поля, я обнаружил, что вы можете установить цвет границы прозрачным, чтобы избежать необходимости совпадения цвета с фоном. Работает в FF17, IE9, Chrome v23. Похоже на достойное решение при условии, что вам также не нужна фактическая граница.
источник
Использование заполнения - неправильный способ сделать это, это может изменить внешний вид, но это не то, что вы хотели. Это может решить вашу проблему.
источник
Вы можете использовать их оба:
Но лучше использовать с % .
источник
%
Если заполнение не работает для вас, другой способ - добавить дополнительные столбцы и установить поле по ширине, используя
<colgroup>
. Ни одно из вышеперечисленных решений для заполнения не сработало для меня, так как я пытался дать самой границе ячейки запас, и это то, что в конечном итоге решило проблему:Стилизуйте границы ячеек таблицы, используя: nth-child, чтобы второй и третий столбцы представляли собой один столбец.
источник