border-collapse | htmlbook.ru
| Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS | |
| 6.0+ | 8.0+ | 1.0+ | 3.5+ | 1.0+ | 1.0+ | 1.0+ | 1.0+ |
Краткая информация
| Значение по умолчанию | separate |
|---|---|
| Наследуется | Нет |
| Применяется | К тегу <table> или к элементам, у которых значение display установлено как table или inline-table |
| Ссылка на спецификацию | http://www.w3.org/TR/CSS21/tables.html#propdef-border-collapse |
Версии CSS
| CSS 1 | CSS 2 | CSS 2.1 | CSS 3 |
|---|---|---|---|
Описание
Устанавливает, как отображать границы вокруг ячеек таблицы. Это свойство
играет роль, когда для ячеек установлена рамка, тогда в месте стыка ячеек получится
линия двойной толщины (рис.
1а). Значение collapse
заставляет браузер анализировать подобные места в таблице и убирать в ней двойные
линии (рис. 1б). При этом между ячейками остается только одна граница, одновременно принадлежащая
обеим ячейкам. То же правило соблюдается и для внешних границ, когда вокруг
самой таблицы добавляется рамка.
| а | б |
Рис. 1. Вид таблицы при использовании свойства border-collapse
Синтаксис
border-collapse: collapse | separate | inherit
Значения
- collapse
- Линия между ячейками отображается только одна, также игнорируется значение атрибута cellspacing.
- separate
- Вокруг каждой ячейки отображается своя собственная рамка, в местах соприкосновения ячеек показываются сразу две линии.
- inherit
- Наследует значение родителя.
Пример
HTML5CSS2.1IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>border-collapse</title>
<style>
table {
width: 100%; /* Ширина таблицы */
border: 4px double black; /* Рамка вокруг таблицы */
border-collapse: collapse; /* Отображать только одинарные линии */
}
th {
text-align: left; /* Выравнивание по левому краю */
background: #ccc; /* Цвет фона ячеек */
padding: 5px; /* Поля вокруг содержимого ячеек */
border: 1px solid black; /* Граница вокруг ячеек */
}
td {
padding: 5px; /* Поля вокруг содержимого ячеек */
border: 1px solid black; /* Граница вокруг ячеек */
}
</style>
</head>
<body>
<table>
<tr>
<th> </th><th>2013</th>
<th>2014</th><th>2015</th>
</tr>
<tr>
<td>Нефть</td><td>43</td>
<td>51</td><td>79</td>
</tr>
<tr>
<td>Золото</td><td>29</td>
<td>34</td><td>48</td>
</tr>
<tr>
<td>Дерево</td><td>38</td>
<td>57</td><td>36</td>
</tr>
</table>
</body>
</html>Результат данного примера показан на рис.
Рис. 2. Вид таблицы при использовании свойства border-collapse
Браузеры
Internet Explorer до версии 7.0 включительно не поддерживает значение inherit. В IE6 и IE7 не отменяется действие атрибута cellspacing.
Таблица
CSS по теме
- border-collapse
Статьи по теме
- Объемная таблица
- Сетка таблицы
- Строки таблицы
- Таблицы и стили
- Таблицы и стили
Рецепты CSS
Как добавить внутренние линии (границы) в таблицу с помощью CSS
Возможно, вы слышали, что таблицы CSS и HTML не смешиваются. Это не вариант. Да, использование таблиц HTML для разметки больше не является лучшей практикой веб-дизайна, поскольку они были заменены стилями разметки CSS, но таблицы по-прежнему являются правильной разметкой, используемой для добавления табличных данных на веб-страницу.
Поскольку многие веб-профессионалы избегают таблиц, считая их ничем иным, как проблемами, у многих из этих специалистов мало опыта работы с этим общим элементом HTML, и они испытывают трудности, когда им приходится добавлять внутренние строки в ячейки таблицы на веб-странице.
CSS Table Borders
Lifewire / Дерек АбеллаКогда вы используете CSS для добавления границ в таблицы, он добавляет только границы вокруг внешней части таблицы. Если вы хотите добавить внутренние строки в отдельные ячейки этой таблицы, вам нужно добавить границы для внутренних элементов CSS. Вы можете использовать тег HR, чтобы добавить строки внутри отдельных ячеек.
Чтобы применить стили, описанные в этом руководстве, вам нужна таблица на веб-странице. Затем вы создаете таблицу стилей в виде внутренней таблицы стилей в заголовке документа (если вы имеете дело только с одной страницей) или присоединяете к документу как внешнюю таблицу стилей (если на сайте несколько страниц). Вы помещаете стили для добавления внутренних линий в таблицу стилей.
Прежде чем ты начнешь
Решите, где вы хотите, чтобы строки отображались в таблице. У вас есть несколько вариантов, в том числе:
- Окружение всех клеток, чтобы сформировать сетку
- Расположение линий между столбцами
- Просто между рядами
- Между конкретными столбцами или строками.

Вы также можете расположить линии вокруг отдельных ячеек или внутри отдельных ячеек.
Вам также понадобится добавить свойство border-collapse в ваш CSS для вашей таблицы. Это свернет границы в одну строку между каждой ячейкой и позволит границам строк таблицы функционировать должным образом. Прежде чем что-то делать, добавьте следующий блок в ваш CSS.
таблица {
бордюр-коллапс: коллапс;
}Как добавить линии вокруг всех ячеек в таблице
Чтобы добавить линии вокруг всех ячеек в вашей таблице, создав эффект сетки, добавьте следующее в свою таблицу стилей:
Как добавить строки между столбцами в таблице
Чтобы добавить линии между столбцами для создания вертикальных линий, идущих сверху вниз по столбцам таблицы, добавьте в таблицу стилей следующее:
Если вы не хотите, чтобы вертикальные линии появлялись в первом столбце, вы можете использовать псевдо-класс first-child, чтобы нацелиться только на те элементы, которые появляются первыми в их ряду, и удалить границу.
td: первый ребенок, th: первый ребенок {
border-left: none;
}Как добавить строки между строками в таблице
Как и при добавлении линий между столбцами, вы можете добавить горизонтальные линии между строками с одним простым стилем, добавленным в таблицу стилей, следующим образом:
Чтобы убрать границу из нижней части таблицы, вы снова положитесь на псевдокласс. В этом случае вы бы использовали last-child для нацеливания только на последний ряд.
tr: last-child {
border-bottom: нет;
}Как добавить строки между определенными столбцами или строками в таблице
Если вам нужны только строки между конкретными строками или столбцами, вы можете использовать класс в этих ячейках или строках. Если вы предпочитаете более чистую разметку, вы можете использовать псевдокласс nth-child, чтобы выбрать конкретные строки и столбцы в зависимости от их положения.
Например, если вы хотите настроить таргетинг только на второй столбец в каждой строке, вы можете использовать nth-child (2), чтобы применить CSS только ко второму элементу в каждой строке.
td: nth-child (2), th: nth-child (2) {
рамка слева: сплошная 2px красная;
}То же самое относится и к строкам. Вы можете выбрать конкретную строку, используя nth-child .
tr: nth-child (4) {
border-bottom: сплошной 2px зеленый;
}Как добавить линии вокруг отдельных ячеек в таблице
Хотя вы, безусловно, можете использовать псевдоклассы для нацеливания на отдельные ячейки, самый простой способ справиться с такой ситуацией — это CSS-класс. Чтобы добавить линии вокруг отдельных ячеек, вы добавляете класс в ячейки, вокруг которых хотите создать рамку:
Затем добавьте следующий CSS в вашу таблицу стилей:
Как добавить строки внутри отдельных ячеек в таблице
Если вы хотите добавить строки внутри содержимого ячейки, проще всего это сделать с помощью тега горизонтального правила ( <hr> ).
Полезные советы
Если вы предпочитаете контролировать промежутки между ячейками таблицы вручную, удалите следующую строку ранее:
Этот атрибут отлично подходит для стандартных таблиц, но он значительно менее гибок, чем CSS, так как вы можете определить только ширину границы и иметь ее только вокруг всех ячеек таблицы или без нее.
Как применить границу внутри таблицы?
< html >
< голова > < заголовок >Таблица В HTML заголовок >
< стиль медиа = "экран" > таблица { поле: 0 авто; border-collapse: коллапс; } таблица td { набивка: 0,5 бэр; граница: 5 пикселей, сплошная DodgerBlue; } стол { набивка: 0,5 бэр; граница: 5 пикселей сплошной помидор; } /* Удаление всех нежелательных границ с левой стороны по номеру все элементы в первом столбец и удаление их левого 900 07 граница*/ таблица tr td:first-child, th:first- child{ левая граница: нет; } /* Удаление всех нежелательных границ сверху таблицы вызовом всех элементов в первой строке и удаление верхней границы*/ table tr:first-child th{ border-top: нет; } /* Удаление всех нежелательных границ справа, позвонив по номеру 9 0008 |
Как добавить рамку внутри таблицы
Иногда работа с таблицами может вызвать некоторые трудности, например, когда нужно добавить рамку только внутри таблицы.
К счастью, есть несколько решений этой проблемы, которые мы продемонстрируем в этом фрагменте.
Проблема с установкой границы внутри таблицы заключается в добавлении полной рамки вокруг всех ячеек. В результате вы добавляете границу вокруг всей таблицы. Вместо этого добавьте границу везде, а затем удалите границу там, где это необходимо. Для этого вам понадобится свойство border-collapse со значением «collapse», псевдоклассы :first-child и :last-child.
Пример добавления рамки внутри таблицы:
<голова>
Название документа
<стиль>
стол {
граница коллапса: коллапс;
}
стол тд,
стол й {
граница: 1px сплошная #000;
}
таблица tr:first-child th {
верхняя граница: 0;
}
таблица tr:последний ребенок td {
нижняя граница: 0;
}
таблица tr td: первый ребенок,
таблица tr th:first-child {
граница слева: 0;
}
таблица tr td:последний ребенок,
таблица tr th:последний ребенок {
граница справа: 0;
}
стиль>
голова>
<тело>
<таблица>
Заголовок 1
Заголовок 2
Лорем Ипсум
Лорем Ипсум
Лорем Ипсум
Лорем Ипсум
таблица>
тело>
Попробуй сам "
Результат
| Рубрика 1 | Рубрика 2 |
|---|---|
| Лорем Ипсум | Лорем Ипсум |
| Лорем Ипсум | Лорем Ипсум |
Другой способ установить границу только внутри таблицы — использовать для свойства CSS border-style значение «скрытый».

