Чат PHP-разработчиков
Логические задачи с собеседований
Как сделать границы таблицы в HTML

Делаем границы для таблицы в HTML

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

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

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

<table border="1">
    <tr>
        <td>Верхняя левая ячейка</td><td>Верхняя правая ячейка</td>
    </tr>
    <tr>
        <td>Нижняя левая ячейка</td><td>Нижняя правая ячейка</td>
    </tr>
</table>

Результат в браузере:
Таблица с границами

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

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

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

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

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

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Пример таблицы</title>
    <style>
        table {
            border: solid 1px blue;
        }
    </style>
</head>
<body>
<table>
    <tr>
        <td>Верхняя левая ячейка</td>
        <td>Верхняя правая ячейка</td>
    </tr>
    <tr>
        <td>Нижняя левая ячейка</td>
        <td>Нижняя правая ячейка</td>
    </tr>
</table>
</body>
</html>

Так мы добавили только внешнюю границу для таблицы синего цвета.

Результат в браузере:
Таблица со сплошной внешней границей синего цвета

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

    <style>
        table {
            border: solid 1px blue;
        }

        td {
            border: solid 1px blue;
        }
    </style>

Результат в браузере:
Таблица с внешней и внутренними границами

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

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

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

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

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

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

Присоединяйтесь к нам в ВКонтакте и в Facebook, чтобы не пропустить новые уроки. А также вступайте в наш чат PHP-разработчиков в Telegram.
Домашнее задание
  • сделайте внутренние границы в виде пунктирной линии. Для этого в стилях вместо слова solid используйте слово dotted
  • сделайте внешнюю границу для всей таблицы толщиной 5px и цветом green
Читайте также
Комментарии


ImmortalPsych
ImmortalPsych
<!DOCTYPE=html>
<head>
    <meta charset="utf-8">
    <title>Табличка</title>
    <style>
        table {border: dotted 5px green;
               border-collapse: collapse;}
        td {border: dotted 5px green;}
    </style>    
</head>
<body>
<table>
    <tr>    <td></td>               <td>Золото</td>     <td>Серебро</td>        <td>Бронза</td>         <td>Всего</td>      </tr>
    <tr>    <td>Россия</td>         <td>8</td>          <td>15</td>             <td>19</td>             <td>38</td>         </tr>
    <tr>    <td>Белоруссия</td>     <td>6</td>          <td>14</td>             <td>17</td>             <td>33</td>         </tr>
    <tr>    <td>Азербайджан</td>    <td>2</td>          <td>10</td>             <td>19</td>             <td>27</td>         </tr>
</table>
</body>
</html>

Такой збс урок, я получил удовольствие прям)) Кое-что не понял, но потом покопался и дошло.
Не получалось у меня убрать отступы между ячейками.
Моя ошибка: я, почему-то, подумал, что когда прописывается этот код

        table {
            border: solid 1px blue;
            border-collapse: collapse;
        }

(то есть когда прописываем атрибут border у задаём его значение), то мы убираем td (то есть не задаём значений для ячеек). Но потом посмотрел на htmlbook.ru пример таблицы (с кодом, естественно), сравнил со своей и увидел свою ошибку.

ДЕРЖУ ВСЕХ В КУРСЕЕЕЕ :DD

ivashkevich
ivashkevich

Хорошо, что сам нагуглил - это в разработке один из самых важных навыков.

nastasya95
nastasya95

Спасибо за урок! Все очень доходчиво и ясно написано)

<!DOCTYPE html>
<html>
<head>

<meta charset = "utf-8">
<title>table</title>
<meta name ="keywords" content ="sedffffffff, sdfffffffffff, sdfffffffffff, sdfffff">
<meta name ="description" content ="sedffffffff sdfffffffffff sdfffffffffff sdfffff dffffffffff ">
<style>
table{
border:solid 5px green;
border-collapse:collapse;
}
td{
border:dotted 1px blue;
}
</style>
</head>
<body>

<table>

<tr> <td>Верхняя левая ячейка</td>  <td>Верхняя правая ячейка</td> 
</tr>

<tr> <td>Средняя левая ячейка</td> <td>Средняя правая ячейка</td>
</tr>

<tr>  <td>Нижняя левая ячейка</td>  <td>Нижняя правая ячейка</td>
</tr>

</table>
</body>
</html>
ivashkevich
ivashkevich

Пожалуйста =)