border-collapse | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
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 1CSS 2CSS 2.1CSS 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>&nbsp;</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.

Рис. 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

         все элементы в последней строке и

         удаление их правой границы*/

         table tr td:last-child, th:last-child{

             border-right: нет;

         }

          

         /* Удаление всех нежелательных границ

        снизу таблицы на

         вызов всех элементов в

900 06          последний столбец и удаление их

         нижняя граница*/

         table tr:last-child td{

             border-bottom: нет;

         }

     стиль >

головка >

 

< корпус >

< таблица >

         < тр >

             < th 900 08 >Roll Number th >

             < th >Имя гика< < >Знаки th >

         tr >

         < tr >

             < td >01 td > 9 0008

             < td >Geek 01 td >

             < td >100 td >

         tr > 900 08

         < tr >

                    < 900 08 тд >02 td >

             < td >Geek 02 тд >

            < td >95 td >

9 0006          tr >

         < tr 90 008 >

             < td >03 td >

             < td >Geek 03 td >

             < 9000 7 td
>90 td >

         tr >

     стол >

корпус >

 

html >

Как добавить рамку внутри таблицы

Иногда работа с таблицами может вызвать некоторые трудности, например, когда нужно добавить рамку только внутри таблицы. К счастью, есть несколько решений этой проблемы, которые мы продемонстрируем в этом фрагменте.

Проблема с установкой границы внутри таблицы заключается в добавлении полной рамки вокруг всех ячеек. В результате вы добавляете границу вокруг всей таблицы. Вместо этого добавьте границу везде, а затем удалите границу там, где это необходимо. Для этого вам понадобится свойство 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 значение «скрытый».