Шаблон таблицы css – CSS оформление таблиц — ширина, высота, выравнивание, размер и другие параметры

CSS оформление таблиц — ширина, высота, выравнивание, размер и другие параметры

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

width и height

Задают соответственно ширину и высоту таблицы. Без этих свойств параметры определяются автоматически и зависят от содержимого контейнера <table>. Значения устанавливаются в любых единицах длины CSS, но зачастую используются пиксели (px) и проценты (%). Последние настраивают ширину относительно родительского элемента, первые же задают абсолютную величину.

table {width: 450px; height: 80%;}

caption-side

Указывает, где будет размещён заголовок таблицы, описанный тегом <caption>. Свойству можно задавать значения:

  • top — расположить над таблицей.
  • bottom — разместить под таблицей.

Эксклюзивно для обозревателя Firefox доступны значения

left (заголовок слева) и right (справа от таблицы), но другие браузеры их не понимают.

table {caption-side: top;}

border-collapse

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

Так рамки ячеек отображаются по умолчанию. Правило border-collapse: separate; даёт такой же эффект. Чтобы решить проблему, нужно объявить border-collapse: collapse; (результат показан на рисунке ниже).

border-spacing

Определяет расстояние между границами ячеек. Правило задаётся сразу для всей таблицы. Если значение одно, то оно установит расстояние и по горизонтали, и по вертикали. Если значения два, то первое задаст расстояние по горизонтали, второе — по вертикали. Свойство несовместимо с правилом table {border-collapse: collapse;}.

CSS-код

   table { 
    border: 4px double #FCA360;
    border-collapse: separate;
    border-spacing: 10px 20px;
   }
   td {
    padding: 3px;
    border: 1px solid #FCA360;
   }

Задаёт таблице следующее оформление:

empty-cells

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

  • show — показывать границы и фон (по умолчанию).
  • hide — скрыть их. Если все ячейки строки пусты, то будет скрыта, соответственно, вся строка. Если таблице задано правило border-collapse: collapse;, то свойство игнорируется.

table-layout

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

  • auto. Ширина определяется автоматически. При этом либо суммируется ширина всех столбцов, либо берётся значение свойства width, если таблице оно задано. Браузер сначала загружает таблицу, потом анализирует её, определяя ширину, и только после этого отображает.
  • fixed. Фиксированная ширина, которая определяется по первой строке.

Пример оформления таблицы

Не забывайте, что таблице можно задавать и другие универсальные правила, например, как мы это делали с высотой (height) и шириной (width).

Помня это, оформим несложную таблицу, частично прокомментировав код.

<!DOCTYPE html>
<html>
 <head>
  <title>border-collapse</title>
  <style>
   table {
    width: 50%;
    caption-side: bottom;
    border: 4px solid #006400;
    border-collapse: collapse;
    table-layout: fixed;
   }
   th {
    font-size: 13px;
    font-weight: bold;
    background: #ADFF2F;
    border-top: 4px solid #006400;
    border-bottom: 3px solid #FF8C00;
    color: #039;
    padding: 8px;
   }
   td {
    background: #E0FFFF;
    border-bottom: 1px solid #FF8C00;
    border-top: 1px solid transparent;
    padding: 8px;
   </style>
 </head>
 <body>   
  <table>
   <caption>Пример таблицы</caption>
   <tr> 
    <th>Цены</th><th>2014</th>
    <th>2015</th><th>2016</th>
   </tr>
   <tr> 
    <td>Хлеб</td><td>16</td>
    <td>18</td><td>21</td>
   </tr>
   <tr> 
    <td>Сахар</td><td>35</td>
    <td>44</td><td>50</td>
   </tr>
   <tr> 
    <td>Соль</td><td>8</td>
    <td>8,50</td><td>9</td>
   </tr>
  </table> 
 </body>
</html>

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

width: 50%;

Задаём ширину таблицы в половину от родительской. 50% берётся от ширины контейнера <body>, потому что других родителей у неё нет. То есть таблица будет занимать ровно половину окна браузера.

caption-side: bottom;

Размещаем заголовок снизу, под таблицей.

border: 4px solid #006400;

Задаём таблице цветную рамку толщиной 4 пикселя.

border-collapse: collapse;

Объединяем границы ячеек.

table-layout: fixed;

Настраиваем способ определения браузером ширины таблицы.

font-size: 13px;

Задаём размер шрифта заглавных ячеек.

font-weight: bold;

Делаем текст внутри них жирным.

background: #ADFF2F;

Устанавливаем цвет фона ячеек.

border-top: 4px solid #006400; border-bottom: 3px solid #FF8C00;

Настраиваем верхние и нижние рамки.

color: #039;

Определяем цвет текста.

padding: 8px;

Задаём расстояние от содержимого ячеек до их границ равным восьми пикселям.

Полезные ссылки:

Оформление таблиц с помощью CSS.


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

Границы и рамки таблицы.

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

Стили рамки показаны на рисунке.
tablicy-css

table {
border: 1px solid #000;
}

Чтобы задать рамку ячейкам, используется то же свойство border, но для элемента td.

td {
border: 1px solid #000;
}

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

table, td {
border: 1px solid #000;
}

tablicy-css

Если мы хотим убрать промежутки между ячейками, используем свойство border-collapse со значением collapse.

table, td{
border-collapse: collapse;
border: 1px solid #000;
}

tablicy-css

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

table{
border-collapse: collapse;
border: 2px solid #000;
}
td{
border: 1px solid #000;
}

tablicy-css

Размеры таблицы.

Ширина таблицы и ячеек задаётся свойством  

width. Значение выставляется либо в пикселях либо в процентах.

table{
border-collapse: collapse;
border: 2px solid #000;
width: 300px;
}
td{
border: 1px solid #000;
}

Если мы хотим первый столбец сделать шире других, то для элемента td используем псевдокласс first-child, и для него прописываем ширину столбца. (Для последнего столбца last-child).

table{
border-collapse: collapse;
border: 2px solid #000;
width: 300px;
}
td{
border: 1px solid #000;
}
td:first-child {
width: 200px;
}

tablicy-css

Чтобы сделать второй столбец шире других, используем для элемента td  псевдокласс nth-child(2).

table{
border-collapse: collapse;
border: 2px solid #000;
width: 300px;
}
td{
border: 1px solid #000;
}
td:nth-child(2) {
width: 200px;
}

Как вы уже догадались, чтобы сделать 3-й столбец отличный от других используем nth-child(3). И т.д.

Высота рядов регулируется с помощью свойства padding для элемента td.  С помощью свойства padding указывается расстояние  от границы элемента до содержимого элемента.

table{
border-collapse: collapse;
border: 2px solid #000;
width: 300px;
}
td{
border: 1px solid #000;
padding: 15px;
}

В нашем примере – это расстояние от границы элемента td до текста внутри элемента td, и составляет оно 15px со всех сторон.
tablicy-css

Цвет фона таблицы.

Общий фон таблицы определяется свойством background, значением которого будет код цвета RGB.

table{
border-collapse: collapse;
border: 2px solid #000;
width: 300px;
background: #00c0ff;
}
td{
border: 1px solid #000;
padding: 15px;
}

tablicy-css

Если мы хотим сделать столбцы разных цветов, то используем для элемента td псевдокласс nth-child(1)(каждому номеру будет соответствовать свой столбец), и для каждого псевдокласса прописываем background.

td:nth-child(1) {
background: #00c0ff;
}
td:nth-child(2) {
background: #4652c5;
}

tablicy-css

Чтобы ряды сделать разными цветами прописываем точно такой же код, но только для элемента tr.

tr:nth-child(1) {
background: #00c0ff;
}
tr:nth-child(2) {
background: #4652c5;
}

tablicy-css

Если нам нужно, чтобы все чётные столбцы были одного цвета, а нечётные другого, то используем  тот же псевдокласс  nth-child но со значениями oddtablicy-css (все нечётные элементы) и even (все чётные элементы).

tr:nth-child(even) {
background: #00c0ff;
}
tr:nth-child( oddtablicy-css) {
background: #4652c5;
}

tablicy-css

Табличная HTML верстка сайта: пример и применение

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

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

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

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

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

Итак, пример табличной вёрстки:

<!DOCTYPE html>
<html>
<head>
    <title>Табличная вёрстка</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th colspan=2>шапка сайта (логотип, слоган, телефон)</th>
</tr>
<tr>
<th>навигация</th>
<th>заголовок</th>
</tr>
<tr>
<td>
<ul>
<li><a href="index.html" title="Ссылка 1">Ссылка 1</a></li>
<li><a href="index.html" title="Ссылка 2">Ссылка 2</a></li>
<li><a href="index.html" title="Ссылка 3">Ссылка 3</a></li>
</ul>
</td>
<td>контент</td>
</tr>
<tr>
<td colspan=2>Низ сайта (баннеры, счетчики, информация)</td>
</tr>
</table>
</body>
</html>

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

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

Но взглянем на код с пояснениями.

<table border="1" cellpadding="0" cellspacing="0">
  • Тег <table> открывает таблицу.
  • Атрибут border задаёт толщину табличных рамок.
  • Cellspacing устанавливает расстояние между ячейками. В данном случае оно сделано нулевым, чтобы таблица не расползалась.
<th colspan=2>шапка сайта (логотип, слоган, телефон)</th>
  • <th> — открывающий тег ячейки заголовка таблицы. В отличие от других, текст в этой ячейке будет выровнен по центру и выделен полужирным.
  • Colspan — атрибут, значение которого определяет, сколько ячеек по горизонтали относительно других строк текущий элемент будет занимать.
  • </th> закрывает ячейку.
  • Текст между тегами <th> и </th> — это и есть содержимое ячейки, ради него всё и делалось.

</tr> — конец строки.

<th>навигация</th> <th>заголовок</th>

Я разделил 100% ширины страницы на две части: 20% отдал под блок навигации, 80% — под основной контент.

<td>
<ul>
<li><a href="index.html" title="Ссылка 1">Ссылка 1</a></li>
<li><a href="index.html" title="Ссылка 2">Ссылка 2</a></li>
<li><a href="index.html" title="Ссылка 3">Ссылка 3</a></li>
</ul>

Вёрстка блока навигации. Создаю ячейку, занимающую 20% ширины таблицы. Внутри тегов <ul> </ul> расположен список ссылок. На его основе можно сделать меню сайта.

<tr><td colspan=2>Низ сайта (баннеры, счетчики, информация)</td></tr>

В следующей строке настраиваю подвал (низ) сайта. Для этого использую уже знакомые теги. При помощи colspan=2 делаю, чтобы низ сайта занимал по горизонтали сразу две ячейки, как шапка — эти части, в отличие от тела страницы, на блоки в моём случае делить не нужно.

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

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

Полезные ссылки:

Красивая стилизация таблицы на CSS – Di-Grand

table {

    overflow:hidden;

    border:1px solid #d3d3d3;

    background:#fefefe;

    width:70%;

    margin:5% auto ;

    -moz-border-radius:5px; /* FF1+ */

    -webkit-border-radius:5px; /* Saf3-4 */

    border-radius:5px;

    -moz-box-shadow: 4px rgba(0, 0, 0, 0.2);

    -webkit-box-shadow: 4px rgba(0, 0, 0, 0.2);

}

th, td {

    padding:18px 28px 18px;

    text-align:center;

}

th {

    padding-top:22px;

    text-shadow: 1px 1px 1px #fff;

    background:#e8eaeb;

}

td {

    border-top:1px solid #e0e0e0;

    border-right:1px solid #e0e0e0;

}

tr.odd-row td {

    background:#f6f6f6;

}

td.first, th.first {

    text-align:left

}

td.last {

    border-right:none;

}

td {

    background: -moz-linear-gradient(100% 25% 90deg, #fefefe, #f9f9f9);

    background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f9f9f9), to(#fefefe));

}

tr.odd-row td {

    background: -moz-linear-gradient(100% 25% 90deg, #f6f6f6, #f1f1f1);

    background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f1f1f1), to(#f6f6f6));

}

th {

    background: -moz-linear-gradient(100% 20% 90deg, #e8eaeb, #ededed);

    background: -webkit-gradient(linear, 0% 0%, 0% 20%, from(#ededed), to(#e8eaeb));

}

tr:first-child th.first {

    -moz-border-radius-topleft:5px;

    -webkit-border-top-left-radius:5px; /* Saf3-4 */

}

tr:first-child th.last {

    -moz-border-radius-topright:5px;

    -webkit-border-top-right-radius:5px; /* Saf3-4 */

}

tr:last-child td.first {

    -moz-border-radius-bottomleft:5px;

    -webkit-border-bottom-left-radius:5px; /* Saf3-4 */

}

tr:last-child td.last {

    -moz-border-radius-bottomright:5px;

    -webkit-border-bottom-right-radius:5px; /* Saf3-4 */

}

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

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