Что такое border collapse

border-collapse

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
6.0+8.0+1.0+3.5+1.0+1.0+1.0+1.0+

Краткая информация

Значение по умолчаниюseparate
НаследуетсяНет
ПрименяетсяК тегу

или к элементам, у которых значение display установлено как table или inline-table
Ссылка на спецификациюhttp://www.w3.org/TR/CSS21/tables.html#propdef-border-collapse

Версии CSS

Описание

Устанавливает, как отображать границы вокруг ячеек таблицы. Это свойство играет роль, когда для ячеек установлена рамка, тогда в месте стыка ячеек получится линия двойной толщины (рис. 1а). Значение collapse заставляет браузер анализировать подобные места в таблице и убирать в ней двойные линии (рис. 1б). При этом между ячейками остается только одна граница, одновременно принадлежащая обеим ячейкам. То же правило соблюдается и для внешних границ, когда вокруг самой таблицы добавляется рамка.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapseЧто такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse
аб

Рис. 1. Вид таблицы при использовании свойства border-collapse

Синтаксис

border-collapse: collapse | separate | inherit

Значения

HTML5 CSS2.1 IE Cr Op Sa Fx

Результат данного примера показан на рис. 2.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Рис. 2. Вид таблицы при использовании свойства border-collapse

Браузеры

Источник

border-collapse

Свойство CSS border-collapse используется для управления способом отображения рамок (границ) вокруг ячеек таблицы. По умолчанию браузеры выделяют каждой ячейке собственную рамку, а с помощью border-collapse можно сделать границы ячеек общими с границами соседних ячеек.

Тип свойства

Значения

Значением свойства border-collapse является одно из ключевых слов.

Процентная запись: не существует.

Значение по умолчанию: separate.

Таблица с border-collapse: collapse.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Таблица с border-collapse: separate.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Синтаксис

Пример CSS: использование border-collapse

Результат. Использование свойства CSS border-collapse.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Версии CSS

Браузеры

Браузер:Internet ExplorerGoogle ChromeMozilla FirefoxOperaSafari
Версия:6.0 и 7.08.0 и выше2.0 и выше2.0 и выше9.2 и выше3.1 и выше
Поддержка:ЧастичноДаДаДаДаДа

Источник

CSS border-collapse Свойство

Пример

Установите модель свертывания границ для двух таблиц:

#table1 <
border-collapse: separate;
>

#table2 <
border-collapse: collapse;
>

Подробнее примеры ниже.

Определение и использование

Свойство border-collapse устанавливает, должны ли границы таблицы сворачиваться в одну границу или разделяться как в стандартном HTML.

Значение по умолчанию:separate
Inherited:yes
Animatable:no. Читайте о animatable
Version:CSS2
Синтаксис JavaScript:object.style.borderCollapse=»collapse»

Поддержка браузера

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

Синтаксис CSS

Значения свойств

ЗначениеОписание
separateГраницы разделены; Каждая ячейка будет отображать свои собственные границы. Это значение по умолчанию.
collapseГраницы свернуты в одну границу, когда это возможно (граница-пробелы и пустые-ячейки свойства не имеют эффекта)
initialПрисваивает этому свойству значение по умолчанию. (Читайте о initial)
inheritНаследует это свойство из родительского элемента. (Читайте о inherit)

Другие примеры

Пример

При использовании «граница-свернуть: разделить», граница-шаг свойство может быть использовано для установки пространства между ячейками:

Пример

При использовании «border-свернуть: свернуть», ячейка, которая появляется первым в коде будет «Win»:

table, td, th <
border: 3px solid red;
>

#table1 <
border-collapse: collapse;
border-color: blue;
>

Источник

Победа над неочевидным. Схлопывание внешних отступов

Много начинающих верстальщиков и веб-разработчиков сталкиваются с ситуацией, когда элементы на странице ведут себя не так, как ожидается, и данное поведение кажется абсурдным. Но не стоит забывать, что существующие доминирующие технологии созданные людьми думающими, а если эта технология ещё и проверенная временем, значит, в таком странном, на первый взгляд, поведении, была и остается необходимость.

Наверное, каждый сталкивался со свойством border-collapse для таблиц. Известно, что данное свойство со значением border-collapse:collapse удаляет одну из границ для соседних ячеек таблицы, предотвращая дублирование их границ. Схоже работает и особенность блочной модели, называемая схлопыванием внешних отступов (англ. — Collapsing Margin). Схлопывание внешних отступов — особенность блочной модели CSS, которая заключается в наложении вертикальных внешних отступов двух или более блочных элементов (которые могут быть или не быть соседями) для формирования одиночного внешнего отступа. Отступ, сформировавшийся в результате данного объединения, называется схлопнувшимся отступом. Заметьте, что данная особенность применима только к вертикальным отступам элемента, т.е. к margin-top и margin-bottom.

Для упрощения, представляйте схлопывание следующим образом: когда внешние вертикальные отступы блочных элементов соприкасаются, то остается отступ, значение которого равняется значению большего из них, при этом значение отступа элемента с меньшей границей равно нулю. На рисунке ниже размер одной клетки фонового рисунка равен 20 пикселей; как видим, отступ между элементами равен 40 пикселей, хотя на первый взгляд, глядя на код, человеку, не знакомому с принципами схлопывания, может показаться, что блоки размещены неправильно, так как их отступы не плюсуются:

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

В случае, если одна с величин имеет минусовое значение, то финальное значение схлопнувшегося отступа формируется путем суммирования исходных значений блочных элементов. В случае, если обе величины отрицательные, то используется большее отрицательное значение (меньшее с арифметической точки зрения). Например, если бы block1 имел значение margin-bottom:-60px, а блок block2 margin-top:50px, то финальное значение отступа между элементами было бы минус 10 пикселей.

Соседние элементы и схлопывание

Обычно, исключая применения дополнительных свойств, внешние отступы любых соседних не корневых блочных элементов схлопываются, пример схлопывания соседних элементов приведен выше.

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

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Как видим, здесь нужно добавлять родительскому элементу нижнее внутреннее поле для того, что бы выровнять все элементы. Стоит ли ломать ноги, что бы подставлять костыли — дело вкуса, но я бы не советовал.

Схлопывание отступов элементов, связанных родительской связью

В данном случае схлопывание работает немного запутаннее и сложнее, чем в примерах выше. Для начала нужно знать, что отсупы блоков схлопываются соответствующими полями. Это значит, что верхнее поле родителя схлопнется с верхним полем своего потомка. Для рассмотрения данной ситуации представим, что имеется три блока: внешний блок-родитель, блок-родитель и дочерний блок. Для того, чтобы сработало схлопывание, нужно что бы блок-родитель не имел ни полей, ни границ (их значения были нулевые). Таким образом, внешние поля этих элементов соприкасаются. Заметьте, что нулевые значения внутренних полей и границ для родителей — обязательное условие срабатывания схлопывания.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Напомню, что размер одной клетки равно 20 пикселей, поэтому без схлопывания отступ между элементами был бы 60+40 пикселей, но из-за применения данного эффект он равен максимальному значению одного из элементов, в данному случае — 60 пикселям(3 клетки). Видим, что отступ дочернего блока заменяет верхний отступ для своего родителя. Если для родительского элемента задать что-либо: поле (padding) или же границу (border), то схлопывание не применится и расстояние между первым блоком и вторым будет очевидные 100 пикселей. Таким способом, можно управлять наличием данного эффекта, добавляя маленькое поле, либо же бесцветную границу, допустим, толщиной 1 пиксель, тем самым отключая эффект схлопывания.
На первый взгляд может показаться, что эфект работает только при формировании структуры как в примере выше, но это не так: схлопывание сработает и между соседними элементами, когда у них вложенные другие блоки. Рассмотрим ситуацию, когда имеется внешний блок и два блока, один с которых вложенный в другой.

Что такое border collapse. Смотреть фото Что такое border collapse. Смотреть картинку Что такое border collapse. Картинка про Что такое border collapse. Фото Что такое border collapse

Примечательно, что схлопывание в примере выше сработало два раза: сначала схлопнулись отступы родительского и дочернего элемента, потом сформировавшийся отступ схлопнулся с нижним отступом внешнего элемента.

Вывод

Для хорошего специалиста важно контролировать все надлежащие ему инструменты и атрибуты: хорошего механика волнует не только количество клапанов в двигателе, но и наличие хорошей системы впрыска топлива и качество самого топлива. Так и хороший веб-разработчик должен контролировать каждый пиксель и не терять важные детали в структуре сайта.

Источник

Справочник по CSS : Тематический указатель : Справочник по свойствам и атрибутам : Расположение и границы : border-collapse

смотрим также

Материал из Справочник Web-языков

Содержание

Атрибут border-collapse | Свойство borderCollapse

Это свойство устанавливает, как отображать границы вокруг ячеек таблицы.

Синтаксис

Возможные значения

sCollapse Строка, которая может определять и принимать одно из следующих значений:

separateЗначение по умолчанию. Вокруг каждой ячейки отображается своя собственная рамка.
collapseГраницы между ячейками сливаются. Между ячейками отображается только одна линия.

Свойство borderCollapse не наследуется, то есть должно быть определено отдельно для каждого элемента. Значением по умолчанию является separate.

Замечания

Задание свойства borderCollapse играет роль, когда для ячеек установлена рамка, тогда в месте стыка ячеек получится линия двойной толщины. Добавление значения collapse заставляет браузер анализировать подобные места в таблице и убирать в ней двойные линии. При этом между ячейками остается только одна линия границы, одновременно принадлежащая обеим ячейкам.

То же правило соблюдается и для внешних границ, когда вокруг самой таблицы добавляется рамка.

Примеры

Пример иллюстрирует применение свойства borderCollapse и атрибута border-collapse для объединения границ ячеек в таблице.

Стандарты

Поддерживаемые браузеры

Internet Explorer частично в версиях 6.0 и 7.0, в версии 8.0 возможны ошибки

Internet Explorer до седьмой версии включительно не поддерживает значение inherit.

Internet Explorer 8 ошибочно отрисовывает границу при значении hidden свойства border-style.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *