Ширина таблицы css – Задаём размеры отдельных ячеек и столбцов — Знакомство с таблицами — HTML Academy

TD width: настройка ширины столбца таблицы

Атрибут width HTML используется для установки ширины ячейки таблицы, которое переопределяет значение по умолчанию. Он устарел. Используйте CSS для управления разметкой ячеек в HTML таблицах.

Настройка ширины столбца таблицы

Атрибут width, в настоящее время устаревший, когда-то являлся стандартным методом регулирования ширины столбцов таблицы. По умолчанию, браузер будет настраивать столбцы таблицы так, чтобы соответствовать ее содержимому. Но если нужно контролировать ширину каждого столбца, вы можете это сделать, настроив ширину для каждого элемента <td> или <th> отдельной строки. Посмотрим, как это делали раньше с помощью атрибута width, а затем как то же самое можно сделать с помощью CSS. Но вначале нам нужен эталон для сравнения:

<table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that we might even need a line break.</td>   </tr> </table>

Как видите, в первом случае мы не применили CSS или HTML td width. Что браузер сделает с такой таблицей?

Thin Really Really Really Wide
Little Lots and lots and lots and lots of content, so much that we might even need a line break.

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

<table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that we might even need a line break.</td>   </tr> </table>

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

Thin Really Really Really Wide
Little Lots and lots and lots and lots of content, so much that we might even need a line break.

Довольно неплохо. К сожалению, это некорректный HTML- код, поскольку HTML table width был признан устаревшим. Но можно сделать то же самое с помощью простого кода CSS:

<style> .equal-width td {   width: 50%; } </style> <table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

Давайте посмотрим, как браузер выведет таблицу, использующую CSS вместо атрибута width:

Thin Really Really Really Wide
Little Lots and lots and lots and lots of content, so much that it will require a line break.

Регулируемая высота строки таблицы

Еще один атрибут, тесно связанный с шириной, это высота (height). Этот атрибут также устарел, поэтому его не следует использовать. Но поскольку мы говорим о настройке ширины столбцов, то нужно рассмотреть и регулировку высоты строк. Вот как это делалось раньше с помощью устаревшего атрибута:

<table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

Как браузер выводит этот пример:

Thin Really Really Really Wide
Little Lots and lots and lots and lots of content, so much that it will require a line break.

Поскольку HTML table column width устарел, мы покажем, как сделать то же самое с помощью CSS:

<style> .tall-row td {   height: 200px; } </style> <table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

Браузер должен отобразить этот код практически идентично предыдущему. Давайте посмотрим, так ли это:

Thin Really Really Really Wide
Little Lots and lots and lots and lots of content, so much that it will require a line break.

Если честно, я не могу представить, зачем нужно контролировать высоту строки с помощью HTML td width. Гораздо больше смысла в том, чтобы настроить внешний и внутренний отступ для контента элемента <td> и позволить браузеру автоматически устанавливать высоту строки, основываясь на этой информации. Вот как можно применить эту стратегию:

<style> .tall-row td {   padding: 80px 10px; } </style> <table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

Этот код CSS добавляет отступы в 80 пикселей до и после, и 10 пикселей влево и вправо от каждого элемента <td>. Вот результат:

Thin Really Really Really Wide
Little Lots and lots and lots and lots of content, so much that it will require a line break.

Данная публикация представляет собой перевод статьи «<td width>» , подготовленной дружной командой проекта Интернет-технологии.ру

table-layout. CSS стиль для определящий ширину ячеек таблицы

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

Краткая информация по CSS-свойству table-layout

Значение по умолчаниюauto
НаследуетсяНет
ПрименяетсяК тегу <table> или к элементу, у которого значение display установлено как table или inline-table.

Правила написания свойства table-layout

table-layout: auto | fixed

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

При значении fixed ширина колонок вычисляется на основе первой строки, либо определяется с помощью тега <col>. Если данные о форматировании первой строки таблицы по каким-либо причинам получить невозможно, то таблица делится на колонки равной ширины. При использовании значения fixed, содержимое, которое не помещается в ячейку указанной ширины, будет «обрезано» или наложено поверх ячейки (зависит от используемого браузера), но в любом случае ширина ячейки меняться не будет. Для корректной работы этого значения обязательно задавайте ширину таблицы!

Объектная модель

Объект.style.tableLayout

Пример применения стиля table-layout

Проиллюстрируем работу table-layout на примере. Нам нужно, чтобы ширина ячеек не зависела от содержимого.


<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Пример CSS стиля table-layout</title>
  <style>
   table {
    table-layout: fixed; /* Фиксированная ширина ячеек */
    width: 100%; /* Ширина таблицы */
   }
   .col1 { width: 160px; }
   .coln { width: 60px; }
  </style>
 </head>
 <body>
  <table border="1">
   <col>
   <col span="3">
   <tr> 
    <td> </td>
    <td>2012</td><td>2013</td><td>2014</td>
   </tr>
   <tr> 
    <td>Доллар</td><td>32</td><td>35</td><td>37</td>
   </tr>
   <tr>
    <td>Евро</td><td>40</td> <td>42</td><td>44</td>
   </tr>
   <tr>
    <td>Фунт</td><td>43</td><td>50</td><td>55</td>
   </tr>
  </table> 
 </body>
</html>

Зафиксировать ширину столбцов таблицы css | Кабинет Веб-мастера

Зафиксировать ширину столбцов таблицы css

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

Есть у таблиц одна интересная особенность - распределять ширину колонок по своему усмотрению... Ей нипочем ни width, ни max-width, она сделает так, как ей хочется... Автоматически распределяет свободное пространство между колонками в зависимости от содержимого. Поэтому, две двухколоночные таблицы на странице могут выглядеть по-разному! В большинстве случаев это никуда не годится... Как же сделать поведение таблиц прогнозируемым и более послушным? Оказывается, можно!

Есть у таблиц замечательное css свойство: table-layout. Оно принимает 3 значения: auto | fixed | inherit. Нас интересует значение fixed. Если задать его таблице, то ширина колонок будет определяться либо с помощью тега col, либо на основе первой строки.

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

Внимание! При использовании этого значения, содержимое, которое не поместилось в ячейку указанной ширины, будет «обрезано» или наложено поверх ячейки. Это зависит от используемого браузера, но в любом случае ширина ячейки меняться не будет.

Для корректной работы этого значения обязательно должна быть задана ширина таблицы.

table-layout | htmlbook.ru



table-layout | htmlbook.ru 
Internet Explorer Chrome Opera Safari Firefox Android iOS
6.0+ 8.0+ 1.0+ 7.0+ 1.0+ 1.0+ 1.0+ 1.0+

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

Значение по умолчанию auto
Наследуется Нет
Применяется К тегу <table> или к элементу, у которого значение display установлено как table или inline-table.
Ссылка на спецификацию http://www.w3.org/TR/CSS21/tables.html#propdef-table-layout

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

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

Синтаксис

table-layout: auto | fixed | inherit

Значения

auto
Браузер загружает всю таблицу, анализирует ее для определения размеров ячеек и только после этого отображает.
fixed
Ширина колонок в этом случае определяется либо с помощью тега <col>, либо вычисляется на основе первой строки. Если данные о форматировании первой строки таблицы по каким-либо причинам получить невозможно, в этом случае таблица делится на колонки равной ширины. При использовании этого значения, содержимое, которое не помещается в ячейку указанной ширины, будет «обрезано» либо наложено поверх ячейки. Это зависит от используемого браузера, но в любом случае ширина ячейки меняться не будет. Для корректной работы этого значения обязательно должна быть задана ширина таблицы.
inherit
Наследует значение родителя.

Пример

HTML5CSS2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>table-layout</title>
  <style>
   table {
    table-layout: fixed; /* Фиксированная ширина ячеек */
    width: 100%; /* Ширина таблицы */
   }
   .col1 { width: 160px; }
   .coln { width: 60px; }
  </style>
 </head>
 <body>
  <table border="1">
   <col>
   <col span="9">
   <tr> 
    <td>&nbsp;</td>
    <td>2012</td><td>2013</td><td>2014</td><td>2015</td>
    <td>2016</td><td>2017</td><td>2018</td><td>2019</td>
    <td>2020</td>
   </tr>
   <tr> 
    <td>Нефть</td><td>5</td><td>7</td><td>2</td><td>8</td>
    <td>3</td><td>34</td><td>62</td><td>74</td><td>57</td>
   </tr>
   <tr>
    <td>Золото</td><td>3</td> <td>6</td><td>4</td><td>6</td>
    <td>4</td><td>69</td><td>72</td><td>56</td><td>47</td>
   </tr>
   <tr>
    <td>Дерево</td><td>5</td><td>8</td><td>3</td><td>4</td>
    <td>7</td><td>73</td><td>79</td><td>34</td><td>86</td>
   </tr>
  </table> 
 </body>
</html>

Браузеры

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

Статьи по теме

О сайте

Помощь

Копирование материалов

Борьба с ошибками

Технологии

Поисковый плагин

Основные разделы

Статьи

Блог

Практикум

Цифровые книги

Форум

HTML

Самоучитель HTML

XHTML

Справочник по HTML

HTML5

CSS

Самоучитель CSS

Справочник по CSS

Рецепты CSS

CSS3

Сайт

Вёрстка

Макеты

Веб-сервер

htmlbook.ru использует Друпал хостинг it-patrol

© 2002–2020 Влад Мержевич, по всем вопросам пишите по адресу [email protected]

Подпишитесь на материалы сайта по RSS

Отправить ответ

avatar
  Подписаться  
Уведомление о