Как делать отступы в таблице html. Применение пустых ячеек

Всем привет! Итак, теперь вы умеете создавать элементарные таблицы, состоящие из такого количества строк и столбцов, которое необходимо. Неплохо, неплохо. А теперь давайте поговорим про оформление этих таблиц.

В прошлом уроке таблицы отображались без границ. И, согласитесь, выглядит так себе, даже и табличкой-то не назовёшь. Чтобы сделать границы таблицы в HTML, следует добавить к тегу

атрибут border , придав ему значение отличное от нуля.

Итак, давайте сделаем границы для таблицы. Например, для уже имеющейся у нас:

Верхняя левая ячейкаВерхняя правая ячейка
Нижняя левая ячейкаНижняя правая ячейка

Результат в браузере:

Как убрать границы таблицы

В свою очередь, чтобы убрать границы таблицы HTML, или ещё можно сказать, сделать их невидимыми, нужно атрибуту border задать значение 0 . После этих нехитрых действий рамка уберётся.

Атрибут позволяет создать, но не управлять границами. Он позволяет лишь изменять их толщину.

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

Давайте посмотрим как применять CSS для создания внешних и внутренних границ таблицы.
Для этого удалим у нашей таблицы атрибут border и добавим стили:

Пример таблицы

Верхняя левая ячейка Верхняя правая ячейка
Нижняя левая ячейка Нижняя правая ячейка

Результат в браузере:

Теперь давайте добавим границы и для каждой ячейки. Для этого просто дополним стили:

Результат в браузере:

Как убрать отступы между ячейками в таблице HTML

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

Однако, от таких вот границ, которые именуются двойными, вполне можно избавиться, если использовать CSS-свойство border-collapse. На практике это выглядит вот так:

Table { border: solid 1px blue; border-collapse: collapse; } ...

Как результат - убирается расстояние между ячейками:

Значение collapse, приписанное атрибуту border, позволяет убрать двойные рамки. Как можно увидеть, результатом является "схлопывание" границ ячеек, расположенных рядом, а также рамок ячеек и внешней рамки таблицы. Что касается последней, то она может удалиться и вовсе. И если есть необходимость в ее отображении, необходимо увеличивать ее ширину. Таким образом мы избавились от разделителей в таблице. А в следующем уроке мы поговорим о том, как можно задавать вертикальные и горизонтальные границы. Всем удачи!

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

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

Язык гипертекстовой разметки HTML предоставил нам большое количество возможностей, чтобы осуществить привязку CSS стилей к десяти уникальным тегам, предназначенных для работы с таблицами, предлагаю их повторить перед дальнейшим изучением:

(«подвал» таблицы) цвет заднего фона – coral , для элемента («шапка» таблицы) установили цвет заднего фона silver .
  • Для элементов
  • , которые находятся внутри элемента (тело таблицы) установили изменение цвета заднего фона при наведении (псевдокласс :hover) c белого на цвет khaki (подсвечивается вся строка).

    Результат нашего примера:

    Рис. 153 Пример стилизации строк в таблицах

    Следующий пример рассматривает применение скругления углов к ячейкам таблицы (свойство ).

    Пример скругления углов ячейки
    Тег Описание
    .
    Определяет содержимое таблицы.
    Определяет наименование таблицы.
    Определяет заголовочную ячейку таблицы.
    Определяет строку таблицы.
    Определяет ячейку данных таблицы.
    Используется для содержания заголовка группы в таблице (шапка таблицы).
    Используется для содержания "тела" таблицы.
    Используется для содержания "подвала" таблицы (футер).
    Определяет заданные свойства столбцов для каждого столбца в пределах тега
    Определяет группу столбцов в таблице.

    Работа с отступами в таблице

    Использование внутренних отступов в таблице
    Отступы в таблице
    1 2 3 4
    2
    3
    4

    В данном примере мы:

    • Разместили таблицу по центру, используя прием центровки по горизонитали внешними отступами (margin : 0 auto ).
    • Для наименования таблицы (тег
    ) мы установили внутренний отступ снизу равный 19 пикселей. Надеюсь, Вас не смущают неровные числа:)

    Результат нашего примера:

    Промежуток между ячейками

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

    Чтобы задать расстояние между границами соседних ячеек необходимо использовать свойство CSS - border-spacing .

    Изменение промежутка между таблицами
    border-spacing: 30px 10px;
    1 2 3
    2
    3
    border-spacing: 0;
    1 2 3
    2
    3
    border-spacing:0.2em;
    1 2 3
    2
    3

    В данном примере мы:

    • float : left ). Если вы пропустили тему плавающих элементов, то вы всегда можете к ней вернуться в этом учебнике - « ».
    • Кроме того установили для таблиц внешний отступ справа равный 30px и установили вертикальное выравнивание таблиц (верх элемента выравнивается по верху самого высокого элемента). Мы еще вернемся к подробному рассмотрению этого свойства в этой статье.
    ) – жирное начертание.
  • Для ячеек таблицы (заголовочные и ячейки данных) мы установили сплошную границу размером 1 пиксель шестнадцатеричным цветом #F50 и установили внутренние отступы размером 19 пикселей для всех сторон.
  • Для первой таблицы с классом .first мы установили промежуток между ячейками таблицы (свойство border-spacing) равный 30px 10px , для второй таблицы с классом .second равный нулю, для третей таблицы с классом .third равный 0.2em .
  • Обращаю Ваше внимание, что если в свойстве border-spacing указано только одно значение длины, то оно указывает интервалы, как по горизонтали, так и вертикали, а если указаны два значения длины, то первое определяет горизонтальное расстояние, а второе вертикальное. Расстояние между границами соседних ячеек допускается указывать в единицах измерения CSS (px, cm, em и др). Отрицательные значения не допускаются.

    Результат нашего примера:

    Отображение границ вокруг ячеек таблицы

    Вы можете сказать: - так, мы убрали промежуток между ячейками, используя свойство border-spacing со значением 0 , но почему у нас теперь границы у ячеек то пересекаются?

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

    Для этого необходимо использовать CSS свойство border-collapse . Как не странно, но использование свойства border-collapse со значением collapse является лучшим способом как можно убрать промежуток между ячейками и при этом не получить двойных границ между ними.

    Рассмотрим сравнение поведения границ при использовании свойства border-spacing со значением 0 и свойства border-collapse со значением collapse :

    Пример отображения границ вокруг ячеек таблицы
    border-spacing: 0;
    1 2 3
    2
    3
    border-collapse: collapse;
    1 2 3
    2
    3

    В данном примере мы:

    • Сделали наши таблицы плавающими и сместили по левому краю (float : left ), установили для них внешний отступ справа равный 30px .
    • Установили для наименования таблицы (тег
    ) – жирное начертание.
  • Для ячеек таблицы (заголовочные и ячейки данных) мы установили сплошную границу размером 5 пикселей шестнадцатеричным цветом #F50 и установили фиксированную ширину 50px и высоту 75 пикселей.
  • Для первой таблицы с классом .first мы установили промежуток между ячейками таблицы равный нулю (border-spacing : 0 ;), а для второй таблицы с классом .second установили свойство border-collapse со значением collapse , которое объединяет границы ячеек в одну, когда это возможно.
  • Результат нашего примера:

    Поведение пустых ячеек

    Силами CSS можно установить, следует ли отображать границы и фон пустых ячеек в таблице или нет. За это поведение отвечает свойство empty-cells , которое по умолчанию, как вы могли заметить из предыдущих примеров, отображает пустые ячейки.

    Давайте перейдем к примеру:

    Пример отображения пустых ячеек таблицы
    empty-cells: show;
    1 2 3
    2
    3
    empty-cells: hide;
    1 2 3
    2
    3

    Понять, как действует свойство empty-cells из этого примера очень просто, если для него установлено значение hide , то пустые ячейки и фон в них будут скрыты, если установлено значение show (по умолчанию), то они будут отображаться.

    Расположение заголовка таблицы

    Давайте рассмотрим еще одно простое свойство для стилизации таблиц - caption-side , которое устанавливает расположение заголовка таблицы (над или под таблицей). По умолчанию свойство caption-side имеет значение top , которое помещает заголовок над таблицей. Для того, чтобы поместить заголовок под таблицу необходим использовать свойство со значение bottom .

    Давайте рассмотрим пример использования этого свойства:

    Пример использования свойства caption-side
    Заголовок над таблицей
    Наименование Цена
    Рыба 350 рублей
    Мясо 250 рублей

    Заголовок под таблицей
    Наименование Цена
    Рыба 350 рублей
    Мясо 250 рублей

    В данном примере мы создали два класса , которые управляют расположением заголовка таблицы. Первый класс (.topCaption ) помещает заголовок таблицы над ней, мы применили его к первой таблице, а второй класс (.bottomCaption ) помещает заголовок таблицы под ней, мы применили его ко второй таблице. Класс .topCaption имеет значение свойства caption-side по умолчанию и создан для демонстрации.

    Результат нашего примера:

    Горизонтальное и вертикальное выравнивание

    В большинстве случаев при работе с таблицами вам придется настраивать выравнивание содержимого внутри заголовочных ячеек и ячеек данных. Свойство text-align применяется для горизонтального выравнивания по аналогии с любой текстовой информацией. Применение этого свойства для текста мы рассматривали ранее в статье « ».

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

    Пример горизонтального выравнивания в таблице
    Значение Описание
    left Выравнивает текст ячейки влево. Это значение по умолчанию (если направление текста слева направо).
    right Выравнивает текст ячейки вправо. Это значение по умолчанию (если направление текста справа налево).
    center Выравнивает текст ячейки по центру.
    justify Растягивает линии так, что каждая линия имеет одинаковую ширину (растягивает текст ячейки по ширине).

    В этом примере мы создали четыре класса , которые задают различное горизонтальное выравнивание в ячейках и применили их по порядку к строкам таблицы. Значение в ячейке соответствует значению свойства text-align

    Результат нашего примера:

    Кроме горизонтального выравнивания вы также можете определить и вертикальное выравнивание в ячейках таблицы с помощью свойства vertical-align .

    Обращаю Ваше внимание, что при работе с ячейками таблицы применяются только следующие значения * этого свойства:

    * - Значения sub , super , text-top , text-bottom , length и % , примененные к ячейке таблицы будут вести себя как при использовании значения baseline .

    Рассмотрим пример использования:

    Пример вертикального выравнивания в таблице
    Значение Описание
    baseline Выравнивает базовую линию ячейки по базовой линии родителя. Это значение по умолчанию.
    top Выравнивает содержимое ячейки вертикально по верхнему краю.
    middle Выравнивает содержимое ячейки вертикально по середине.
    bottom Выравнивает содержимое ячейки вертикально по нижнему краю.

    В этом примере мы создали четыре класса , которые задают различное вертикальное выравнивание в ячейках и применили их по порядку к строкам таблицы. Значение в ячейке соответствует значению свойства vertical-align , которое было применено к этой строке.

    Алгоритм размещения макета таблицы браузером

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

    Чтобы изменить тип размещения макета таблицы браузером с автоматического на фиксированный , необходимо использовать CSS свойство table-layout со значением fixed .

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

    Давайте рассмотрим применение этого свойства на следующем примере:

    Пример использования свойства table-layout
    table-layout: auto;
    Наименование 2009 2010 2011 2012 2013 2014 2015 2016
    Пшеница 125 215 2540 33287 695878 1222222 125840000 125
    table-layout: fixed;
    Наименование 2009 2010 2011 2012 2013 2014 2015 2016
    Пшеница 125 215 2540 33287 695878 1222222 125840000 125

    В данном примере мы:

    Стилизация строк и столбцов таблицы

    Мы с Вами частично уже затрагивали методы стилизации строк и столбцов таблицы в статье « ». В этой статье мы рассматривали применение группового псевдокласса , который позволяет чередовать стили строк в таблицах с использованием значений even (четный ) и odd (нечетный ), либо по элементарной математической формуле .

    Давайте повторим ранее рассмотренные методы и познакомимся с новыми способами стилизации строк и столбцов в таблицах. Перейдем к примерам.

    Пример использования псевдокласса:nth-child с таблицами
    1 2 3 4 5 6 7 8 9 10 11 12 13 14
    2
    3
    4

    В данном примере мы:

    Результат нашего примера:

    Перейдем к следующему примеру, в котором рассмотрим варианты стилизации строк таблицы.

    Пример стилизации строк в таблицах
    Услуга Стоимость
    Сумма 15 000
    1 1 000
    2 2 000
    3 3 000
    4 4 000
    5 5 000

    В этом примере мы:

    • Установили ширину таблицы в 100% от ширины родительского элемента, для заголовочных и ячеек данных установили сплошную границу шириной 1px .
    • Установили для элемента
    1 2 3 4 5

    В этом примере мы:

    • Отцентровали таблицу внешними отступами, задали для заголовочных ячеек ширину и высоту 50px , указали прозрачную границу 5 пикселей.
    • Установили, что при наведении (псевдокласс :hover) на заголовочную ячейку она получает задний фон синего цвета, оранжевый цвет текста, границу оранжевого цвета 5 пикселей и радиус скругления 100% .
    • Прозрачная граница необходима для того, чтобы зарезервировать место под границу, которая будет отображена при наведении, если этого не сделать таблица будет «прыгать».

    Результат нашего примера:

    Следующий пример затрагивает использование HTML элементов и и их стилизации.

    Пример подсветки колонок таблицы
    № заявки Услуга Цена, руб. Итого
    1 Пение 6 000 6 000
    2 Мытье 2 000 2 000
    3 Уборка 1 000 1 000
    4 Нытьё 1 500 1 500
    5 Чтение 3 000 3 000

    В этом примере мы:

    Результат нашего примера:

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

    В предыдущем примере мы поняли, что к HTML элементу можно применить только одно CSS свойство – цвет заднего фона (background-color), но при этом задать цвет заднего фона при наведении (псевдокласс :hover) на этот элемент напрямую нельзя. В этом примере мы рассмотрим, как подсветить столбец таблицы, используя только CSS.

    Пример подсветки колонок и строк таблицы при наведении
    № заявки Услуга Цена, руб. Итого
    1 Пение 6 000 6 000
    2 Мытье 2 000 2 000
    3 Уборка 1 000 1 000
    4 Нытьё 1 500 1 500
    5 Чтение 3 000 3 000

    В этом примере мы:

    • Устанавливаем, что наша таблица занимает 100% от родительского элемента, ячейки таблицы занимают 25% от родительского элемента и имеют сплошную границу 1 пиксель зеленого цвета, высота заголовочных и ячеек данных составляет 45px . Промежуток между ячейками мы убрали, используя свойство border-collapse со значением .
    • И так, используя псевдоэлемент ::after добавляем содержимое после каждого элемента при наведении. Псевдоэлемент ::after обязательно используется вместе со свойством content , благодаря которому мы вставляем блочный элемент, который имеет задний фон цвета forestgreen и имеет абсолютное позиционирование .
    • Абсолютное позиционирование здесь необходимо для смещения элемента относительно заданного края его предка, при этом предок должен иметь значение position отличное от установленного по умолчанию - static , иначе отсчёт будет вестись относительно, указанного края окна браузера, по этой причине мы установили для таблицы относительное позиционирование (relative ).
    • Установили для нашего сгенерированного блока свойство top , которое указывает направление смещения позиционированного элемента от верхнего края и свойство bottom , которое указывает направление смещения позиционированного элемента от нижнего края. Для обоих свойств указали значение 0 , таким образом, блок будет полностью занимать элемент от низа и верха таблицы, ширину этого блока задали 25% это значение соответствует значению ширины самой ячейки.
    • И заключительное свойство, которое мы установили для этого блока: z-index со значением "-1" оно определяет порядок расположения позиционированных элементов по оси Z . Это свойство необходимо, чтобы текст находился впереди этого блока, а не за ним, если не задать значение меньше нуля, то блок будет закрывать текст.

    Результат нашего примера:

    Если Вам на этом этапе изучения не понятен процесс позиционирование элементов, то не расстраивайтесь это сложная для понимания тема, которую мы к тому же не рассматривали, но обязательно рассмотрим в следующей статье учебника "Позиционирование элементов в CSS ".

    Вопросы и задачи по теме

    Перед тем как перейти к изучению следующей темы пройдите практическое задание:


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


    2016-2020 Денис Большаков, замечания и предложения по работе сайта Вы можете направить по адресу сайт@gmail.com

    Итак, мы изучили с вами наиболее простые действия, которые можно осуществлять с границами таблиц. И теперь таблица выглядит куда более эстетично. Однако, наполнение ячеек прямо таки упирается в границы. Это легко можно исправить, достаточно лишь сделать отступы в ячейках в таблице HTML. И тогда текст внутри рамки, в ячейке, будет более читабельным.

    Для того, чтобы сделать отступы в ячейке следует использовать атрибут cellpadding для тега

    . Однако, есть и другой, более предпочтительный вариант: CSS .

    В таком случае отступы задаются с помощью свойства padding . С его помощью не составит труда сделать отступ там, где надо, то есть – сверху, справа, снизу или слева, используя, соответственно, одно из данных свойств: padding-top , padding-right , padding-bottom и padding-left .

    Можно задать, на сколько именно пикселей должен осуществляться отступ. Приведем пример, в котором нижний отступ будет составлять 20 пикселей, а все остальные будут по 10 . Такой CSS -код будет выглядеть вот так:

    Td { padding: 10px; padding-bottom: 20px; }

    А полный код стилей на данном этапе:

    Table { border: solid 1px blue; border-collapse: collapse; } td { border: solid 1px blue; padding: 10px; padding-bottom: 20px; }

    Результат в браузере:

    Отступы между ячейками

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

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

    Существует две возможности сделать отступы между ячейками:

    1. с использованием атрибута cellspacing для тега
    .
  • с использованием CSS -свойства border-spacing .
  • Надо подчеркнуть, что border-spacing прописывается для таблицы в целом, в то время как свойство padding прописывается непосредственно для ячеек.

    Давайте глянем на пример:

    Table { border: solid 1px blue; border-collapse: separate; border-spacing: 5px; } td { border: solid 1px blue; padding: 10px; padding-bottom: 20px; }

    И на получившийся результат:

    Сразу оговорим, что не надо пытаться сделать такие отступы с помощью border-collapse: collapse . Ведь при использовании этой опции ячейки «липнут» друг к другу.

    А чтобы они находились отдельно друг от друга, следует использовать border-collapse: separate . Важно понимать, что данное значение является значением по умолчанию. И применяется оно только для того, чтобы наглядно показать, как решается эта задача. Если мы удалим эту строку, то результат в виде отдельно расположенных друг от друга ячеек будет сохранен.

    информирует браузер о завершении таблицы.

    Любая таблица состоит из столбцов и строк.

    Тег

    создает строку, а тег
    ячейку в строке. Соответственно сколько ячеек включено в строку, столько будет и столбцов в таблице.

    Тег

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

    Содержимое ячейки, созданной тегом

    по умолчанию располагается в ее левой чаcти.

    Тег

    создает заголовок таблицы, он располагается внутри тега - сразу после открывающего тега. Заголовок по умолчанию располагается над таблицей и выравнивается по ее центру.















    Заголовок таблицы
    1-я ячейка 1-ой строки 2-я ячейка 1-ой строки
    1-я ячейка 2-ой строки 2-я ячейка 2-ой строки

    Выравнивание таблицы. Выравнивание содержимого ячеек

    Для выравнивания таблицы используется атрибут align тега

    .

    При помощи атрибут align Вы можете разместить таблицу в левой или правой (align= "left" и align= "right" ) части окна браузера (родительского элемента ) или по его центру (align= "center" ).

    Выравнивание содержимого строк (тег

    ) и ячеек (тег , создающий строку таблицы не имеет атрибутов hieght и width . Высота строки соответствует высоте ячеек, расположенных в ней. А ширина строки равна ширине таблицы.

    Значения высоты и ширины задаются в пикселях или в процентах относительно свободного пространства. Для задания значений:

    Указывается целое положительное число. В этом случае размер будет задан в пикселях;

    Указывается целое положительное число с символом %.

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

    ) по горизонтали также осуществляется при помощи атрибута align , а по вертикали при помощи атрибута valign :

    Атрибут align принимает значения left , right , center и justify , которые задают выравнивание содержимого строк и ячеек по их левому, правому краю, по центру и по ширине соответственно;

    Атрибут valign , принимающий значения top , bottom и middle , задает выравнивание содержимого строк и ячеек по их верхнему, нижнему краю и по середине соответственно.

    Атрибут align служит также для выравнивания заголовка (тег

    ) по горизонтали и определения его расположения - над таблицей или под ней.

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

    Высота и ширина таблицы и ячеек

    По умолчанию размеры (высота и ширина ) и таблицы, и ячеек меняются в зависимости от размеров их содержимого.

    Но высоту и ширину как таблицы, так и отдельных ее ячеек можно задать явно - при помощи атрибутов hieght и width соответственно.

    Тег














    >

    Как видно из примера: указывая ширину одной из ячеек столбца, Вы тем самым задаете ширину всего столбца; и, указывая высоту одной из ячеек строки, Вы задаете высоту всей строки.

    Границы таблицы и ячеек

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

    Атрибут border тега

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

    Толщина границы (или рамки ) задается в пикселях. В качестве значения атрибута border указывается целое положительное число. Если атрибут border указан без значения, толщина рамки составит 1 пиксель.

    Толщина границы задается только для таблицы. Толщина рамки вокруг ячеек всегда составляет 1 пиксель (либо отсутствует ).

    По умолчанию граница отображается с эффектом трехмерности и имеет черный цвет.

    Атрибут bordercolor задает цвет границы и устраняет эффект трехмерности. Атрибут может использоваться для задания цвета границы таблицы (тег

    ), строки (тег ) или ячейки (тег
    ).

    Атрибут bordercolor поддерживается не всеми браузерами и поэтому не рекомендуется его использовать. Для задания цвета границы лучше воспользоваться стилями (это уже в CSS ).










    Атрибут border не указан. Поэтому границы отсутствуют.











    Толщина границы таблицы составляет 3 пикселя. Ячейки имеют границы толщиной 1 пиксель!

    Частичное отображение границ

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

    Атрибут frame тега

    указывает, где рисовать границу таблицы. Атрибут rules указывает, как отобразить границы ячеек.

    "500px" frame= "hsides" rules= "cols" >










    Установлены горизонтальные границы таблицы
    И отображены границы между колонками

    Отступы внутри и снаружи ячеек

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

    Внутренние отступы - от границ ячеек до их содержимого, задаются атрибутом cellpadding тега

    .

    Внешние отступы - расстояние между границами соседних ячеек и расстояние от границ ячеек до границы таблицы, задаются атрибутом cellspacing тега

    .

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










    Расстояние от содержимого ячеек до их границ составляет 10 пикселей
    Расстояние между ячейками и от ячеек до границы таблицы составляет 25 пикселей

    Объединение ячеек

    При оформлении и форматировании таблиц в HTML нередко требуется объединить рядом расположенные ячейки. И если такая необходимость возникла, то Вам следует воспользоваться атрибутами colspan и rowspan тега

    .

    Атрибут colspan указывает количество ячеек, которые будут объединены по горизонтали, а атрибут rowspan устанавливает количество ячеек, объединяемых по вертикали.

    Оба атрибута имеют смысл, если таблица состоит из нескольких строк.










    1 2
    3 4

    1 2
    3 4

    Фон таблицы. Фон ячеек таблицы

    В HTML есть возможность задать общий фон как для всей таблицы, так и фон для отдельно выделенной ячейки.

    Атрибут background тега

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

    Атрибут bgcolor тега

    задает цвет фона таблицы. Цвет можно задать двумя способами ()

    При помощи этих же атрибутов задают фоновый рисунок и цвет фона для любой ячейки таблицы (тег

    , и .

    Любой из них можно применить для изменения некоторых свойств одной или нескольких строк таблицы: это опять же выравнивание содержимого ячеек в строках по горизонтали и по вертикали - при помощи атрибутов align и valign соответственно; и задание фонового цвета ячеек при помощи атрибута bgcolor .

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

    Теги

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










    Темно-розовый - цвет фона таблицы.
    Фоновый рисунок отдельной ячейки - небо!

    Напомним также о существовании атрибута cols тега

    , который указывает браузеру количество столбцов в таблице.

    Использование атрибута cols позволяет браузеру быстрее отобразить содержимое таблицы.

    Редактирование таблицы

    В этом разделе, рассмотрим теги, которые применяют при редактировании сразу нескольких элементов таблицы. Эти теги можно разделить на две группы.

    К первой группе относятся теги

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

    Один из этих тегов располагают сразу после тега

    . Допустим это тег .

    При помощи атрибута span тега

    указывают количество колонок, к которым будут применены атрибуты align , valign или width (выравнивание содержимого ячеек колонок по горизонтали, вертикали или задание ширины колонок ).

    Если атрибут span в теге

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



    "2" width= "70px" >







    1 2 3 4 5

    1 2 3 4 5

    Ко второй группе тегов относятся также практически идентичные между собой теги

    . Строки, помещенные в тег представлены вверху таблицы, а строки заключенные в тег будут расположены внизу таблицы. Оба тега могут быть применены только один раз в пределах одной таблицы.

    Тег

    допускается использовать несколько раз внутри тега
    .









    "right" bgcolor= "#00FF33" >

    1 2
    3 4
    5 6
    7 8
    9 10
    1 2
    3 4
    5 6
    7 8
    9 10

    Границы html-таблицы легко изменить с помощью средств css. Настройка их отображения осуществляется за счет свойств: collapse и spacing.

    Для редактирования вида таблицы используют группу свойств border. Она позволяет настроить ширину, цвет, присутствие/отсутствие границ, их стиль и другие особенности отображения.

    Основы

    Таблица без указания стилей будет выглядеть как структурированный текст без границ. Table в html строится благодаря тегам:

    • tr для строк;
    • th для заголовков;
    • td для столбцов.
    Head Head Head
    Cell Cell Cell
    Cell Cell Cell

    Размер и шрифт текста, фон, отступы от края окна браузера заданы в css в контейнере body.

    Body { font-family: Helvetica, Sans-serif; font-size: 5vw; color: black; background-color: rgba(228, 228, 245); padding: 20vh; }

    С помощью стилей оформляют вид матрицы. Свойство border позволяет прописать значение толщины, вида и цвета границы html-таблицы.

    { border-width: 2vw; border-style: dotted; border-color: skyblue; }

    Сокращенно задается по шаблону border: width style color.

    { border: 1px solid #4c6ea1; }

    Для определенной стороны задается по шаблону border-top(/right/bottom/left)-style(/color/width/radius).

    { border-top-color: darkblue; }

    Padding устанавливает отступы внутри ячейки от текста до рамки, text-align задает выравнивание.

    С помощью стилей оформляют вид таблицы. Свойство border позволяет прописать значение толщины, стиля и цвета рамки. Padding устанавливает отступы от текста, text-align задает выравнивание.

    Th, td { border: 1vw solid #4c6ea1; padding: 1vw; text-align: left; }

    Без рамок

    Использовать border или отдельно прописывать border-color, -width и -style не обязательно, так как сделать html-таблицу без границ можно с полноценным оформлением. Например, следующий код задает фон, отступы и скругленные углы (последняя матрица без внутренних и внешних линий).

    Table { text-align: left; background-color: rgba(228, 228, 245); border-top-left-radius: 15em 1em; border-bottom-right-radius: 15em 1em; } td, th { padding: 1.5vw; }

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

    Table { text-align: left; background-color: rgba(228, 228, 245); width: 70vw; border-spacing: 2vh 2vh; } td, th { padding: 1.5vh; } td { background-color: rgba(247, 247, 255); }

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

    Table { text-align: center; border-collapse: collapse; background-color: rgba(228, 228, 245); border-radius: 50%; width: 29vh; height: 10vh; border-style: hidden; } td { padding: 1.5vh; border: 0.5vh solid black; }

    Collapse и separate

    Одно из основных свойств table в html — border-collapse — определяет, как будут отображаться границы ячеек. Свойство может иметь одно значение из трех: collapse, separate, inherit.

    table { border-collapse: collapse; }

    По умолчанию установлено значение separate, поэтому каждая ячейка будет иметь свою границу. Благодаря collapse можно слить линии ячеек, чтобы их содержимое разделяла одна рамка. На картинке представлено три описанных выше состояния границ: без стилей; со значением border-collapse по умолчанию; со значением border-collapse, оставляющим между ячейками общую линию.

    Двойные рамки

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

    Table { border-spacing: 0.5vw 1vw; }

    Первым значением указывается расстояние между ячейками по горизонтали, второе — по вертикали. Если рамка задана и для самой таблицы, то расстояние от нее до ячеек формируется также свойством spasing, но на него может влиять еще padding матрицы. В случаях когда у матрицы есть фон, освободившееся пространство между ячейками будет заполнено им.

    Table { border-spacing: 0.5vw 1vw; border: 1vw solid #4c6ea1; padding: 1vw; background-color: black; } td, th { border: 1vw solid #4c6ea1; padding: 0.3vw; text-align: left; background-color: white; }

    Пустые ячейки

    Если для таблицы не задано объединение границ ячеек, свойство empty-cells позволяет отобразить их линии и фон, которые считаются пустыми (помечены как visibility или не имеют символов). Если нужно показать рамки и фон каждой ячейки, свойству задают значение show.

    table { empty-cells: show; }

    Значение hide прячет границы и фон пустых блоков. Если все ячейки ряда пусты, то строка имеет нулевую высоту и только одну вертикальную линию.

    Table { border-spacing: 0.5vw 1vw; border: 0.1vw solid #4c6ea1; padding: 0.5vw; background-color: rgba(33, 31, 171, 0.12); empty-cells: hide; } td, th { border: 0.3vw solid #4c6ea1; padding: 0.5vw; text-align: left; background-color: white; }

    Атрибут

    Для выделения границ группам элементов (ячейкам, столбцам, строкам, группам строк или столбцов) существует атрибут rules. Его значение прописывается непосредственно в html в теге table.

    Он позволяет выборочно прорисовать рамки элементов. Достаточно указать атрибут в html, это создаст внутренние линии между ячейками. Границу html-таблицы придется указывать вручную в css.

    Head Head Head
    Cell Cell Cell
    Cell Cell Cell
    table { border-top: 1vw solid #486743; font-size: 5vw; } th, td { padding: 2vw; }

    Так, на первой картинке представлена чистая работа атрибута без дополнительного оформления рамок через table. На второй картинке дорисована верхняя линия, которая установлена через инструкцию.

    Table { border-top: 1vw doted #486743; }

    У атрибута может быть несколько значений. All создает границы между ячейками с толщиной рамки, равной 1px. Cols создает линии между столбцами, rows - между строками, none стирает края. На картинке приведены примеры таблицы со значениями all и rows.

    Изменить цвет границ ячеек и ширину рамки при использовании атрибута rules можно с помощью border и bordercolor.

    Конфликты стилей

    Ячейкам, строкам, столбцам и группам элементов могут быть заданы собственные значения границ. При этом они могут различаться по трем параметрам: стилю, толщине и цвету.

    В режиме collapse возникают конфликты офрмления. Из-за того, что на одну границу может распространяться правило двух разных ячеек, возникает проблема выбора стиля, который будет приоритетным. Как пишет Е. Мальчук, выигрывает самый "броский" (кроме hidden).

    1. Если у одного из элементов в свойстве border-style для спорной границы указано значение hidden, этот стиль побеждает. Hidden имеет высший приоритет.
    2. Самый маленький вес имеет значение none. Оно тоже диктует линии не отображаться, но чтобы указание исполнилось, все элементы для этой линии должны иметь это (none) правило.
    3. Между тонкими и толстыми границами больший приоритет имеют толстые.
    4. При одинаковых рамках, но разных стилях всегда побеждает двойной сплошной (double), за ним идет solid, пунктирный (dashed), dotted.
    5. Если отличия заключаются только в цветах, то вид самого маленького компонента всегда выше (оформление ячейки имеет больший приоритет, чем строки, а строки выше, чем таблицы).

    Иллюстрация конфликта

    Проиллюстрировать конфликт стилей легко на уже рассмотренной таблице. Достаточно добавить пару классов ячейкам и прописать для них оформление. Html принимает вид:

    Head Head Head
    Cell Cell Cell
    Cell Cell Cell

    Соответствующий ему css.

    Body { font-family: Helvetica, Sans-serif; font-size: 5vw; color: black; margin: 0; width: 80vw; background-color: white; padding: 3vw; } table { background-color: rgba(33, 31, 171, 0.12); padding: 0.5vw; border-collapse: collapse; border-spacing: 0.5vw 1vw; border-style: hidden; } th { padding: 1vw; text-align: left; border: 0.1vw solid #4c6ea1; } td { padding: 1vw; border: 0.2vw dotted #4c6ea1; } .second_cell { border: 0.01vw solid #4c6ea1; } .third_cell { border: 0.01vw double red; }

    Стили рамок

    Оформление границы можно установить для каждой из сторон ячейки отдельно. Для этого достаточно в border-style указать не одно значение, а перечислить четыре, соответственно сторонам ячейки.

    Th, td { padding: 1vw; text-align: left; border-width: 0.5vw; border-color: darkred; border-style: dotted; } .seven { border-top-color: skyblue; border-top-style: solid; border-right-width: 2vw; border-bottom-style: dashed; border-left-style: hidden; }

    Указать данные в одну строку можно, задав от одного до четырех разных значений. Каждое традиционно становится инструкцией для одной из сторон.

    • Если поставить два значения, первое будет отвечать за нижнюю и верхнюю границы, второе — за левую и правую.
    • Из трех первое отвечает за верхнюю, второе — за левую и правую, третье — за нижнюю черту.
    • Четыре значения однозначно определяют каждую из линий, начиная с верхней по часовой стрелке до левой.

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

    Всего есть десять стилей для рамок. Все они изменяют линию или удаляют ее:

    • none — границы нет;
    • hidden — более строгое none, блокирует появление черты (в ситуации конфликта);
    • dotted — из точек;
    • dashed — пунктирная;
    • solid — сплошная;
    • double — двойная сплошная;
    • groove — рамка будто вдавлена в поверхность;
    • ridge — выпуклая линия;
    • inset — по факту для одной стороны элемента ведет себя как ridge, если применяется ко всему элементу, то top и left затенены, а bottom и right высветлены;
    • outset — ведет себя подобно groove при применении к одной стороне элемента, затеняет bottom и right, top и left оказываются более светлыми.

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

    Table { background-color: rgba(33, 31, 171, 0.12); padding: 0.5vw; border-collapse: collapse; border: 0.3vw solid black; } th, td { padding: 1vw; text-align: left; } .one { border-top: hidden; border-left: hidden; } .two { border-top: 0.4vw double #4c6ea1; border-left: 0.4vw double #4c6ea1; } .three { border-top: 0.5vw solid #4c6ea1; border-left: 0.5vw solid #4c6ea1; } .four { border-top: 0.7vw dashed #4c6ea1; border-left: 0.7vw dashed #4c6ea1; } .five { border-top: 0.8vw dotted #4c6ea1; border-left: 0.8vw dotted #4c6ea1; } .six { border-top: 0.9vw ridge #4c6ea1; border-left: 0.9vw ridge #4c6ea1; } .seven { border-top: 1vw outset #4c6ea1; border-left: 1vw outset #4c6ea1; } .eight { border-top: 1.1vw groove #4c6ea1; border-left: 1.1vw groove #4c6ea1; } .nine { border-top: 1.2vw inset #4c6ea1; border-left: 1.2vw inset #4c6ea1; }

    Структурирование материала

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

    • обнуление линий (для border-width указывают значение в 0px);
    • hidden.

    Преимущество hidden в силе его приоритета. Если на границу действует правило сразу двух элементов и в одном из них в border-style указано значение hidden, линия отображаться не будет. Т. е. можно спокойно сделать всю таблицу, а затем выборочно удалить ненужные рамки.

    Использование hidden по отношению к ячейкам делает невозможным восстановление границы другими методами (кроме тяжеловеса!imporant). Поэтому при необходимости удалить некоторые из сторон ячеек, лучше использовать none.

    Допустим, есть таблица. Цель - удалить вертикальные границы внутри первой строки. Она помечена отдельным тегом (заголовком), поэтому дополнительный класс вводить не требуется. Если применить hidden ко всему тегу, прописав его border-left, то вместе с внутренними границами удалится и одна часть боковой рамки таблицы, что не требовалось по условию. Если же воспользоваться none и линией матрицы, то для внутренних черт будет два неконфликтующих правила, а у внешнего края none будет конфликтовать с правилом, которое ей задается в table, и сторона останется на месте.

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

    Тогда как убрать боковую границу в html-таблице легче через обращение к внешним рамкам матрицы, которые указывают в table. Достаточно прописать указание на конкретную линию в css.

    Table { border-left-style: hidden; }

    Удаление рамок в строках легко реализовать с помощью свойства border со значением hidden в tr. Исчезают не только горизонтальные линии таблицы, но и боковые. Матрица вырождается в вертикальные колонки.

    Tr { border-style: hidden; }

    В крайнем случае обращаются к!important. Если добавить его после инструкции, то она получит дополнительный приоритет.

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