Html таблица границы: Таблица с рамкой | htmlbook.ru

Содержание

Таблица с рамкой | htmlbook.ru

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

Для создания рамки применяется стилевое свойство border, которое добавляется к селектору TABLE. Также эффектно смотрится таблица, когда цвет рамки совпадает с цветом фона заголовка (тег <th>), как показано на рис. 1.

Рис. 1. Таблица с рамкой

В примере 1 показано, как создать такую простую таблицу.

Пример 1. Создание рамки вокруг таблицы

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Таблица</title>
  <style type="text/css">
   TABLE {
    width: 300px; /* Ширина таблицы */
    border: 1px solid black; /* Рамка вокруг таблицы */
   }
   TD, TH {
    padding: 3px; /* Поля вокруг содержимого ячеек */
   }
   TH {
    text-align: left; /* Выравнивание по левому краю */
    background: black; /* Цвет фона */
    color: white; /* Цвет текста */
   }
  </style>
 </head>
 <body>
  <table cellspacing="0">
   <tr>
    <th>&nbsp;</th><th>2004</th><th>2005</th><th>2006</th>
   </tr>
   <tr>
    <td>Рубины</td><td>43</td><td>51</td><td>79</td>
   </tr>
   <tr>
    <td>Изумруды</td><td>28</td><td>34</td><td>48</td>
   </tr>
   <tr>
    <td>Сапфиры</td><td>29</td><td>57</td><td>36</td>
   </tr>
  </table>
 </body>
</html>

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

Рис. 2. Таблица с рамкой

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Таблица</title>
  <style type="text/css">
   TABLE { 
    width: 300px; /* Ширина таблицы */
    border: 2px solid black; /* Рамка вокруг таблицы */
    background: silver; /* Цвет фона таблицы */
   }
   TD, TH { 
    text-align: center; /* Выравнивание по центру */
    padding: 3px; /* Поля вокруг содержимого ячеек */
   }
   TH { 
    background: #4682b4; /* Цвет фона */
    color: white; /* Цвет текста */
    border-bottom: 2px solid black; /* Линия снизу */
   }
   .
lc { font-weight: bold; /* Жирное начертание текста */ text-align: left; /* Выравнивание по левому краю */ } </style> </head> <body> <table cellspacing="0"> <tr> <th>&nbsp;</th><th>2004</th><th>2005</th><th>2006</th> </tr> <tr> <td>Рубины</td><td>43</td><td>51</td><td>79</td> </tr> <tr> <td>Изумруды</td><td>28</td><td>34</td><td>48</td> </tr> <tr> <td>Сапфиры</td><td>29</td><td>57</td><td>36</td> </tr> </table> </body> </html>

В данном примере добавляется стилевой класс с именем lc, он добавляется к ячейкам левой колонки для изменения выравнивания содержимого и создания жирного начертания текста.

Эффектно смотрится таблица, у которой фон заголовка выполнен в виде градиента (рис.  3). При этом создание подобной таблицы не представляет особой сложности.

Рис. 3. Таблица с градиентным заголовком

При этом в качестве фона применяется заранее заготовленный рисунок, например, как показано на рис. 4.

Рис. 4. Заготовка для создания фона

Для добавления фона только к одной строке таблицы имеется несколько способов. Можно воспользоваться тегом <thead>, который предназначен для хранения одной или нескольких строк, которые представлены вверху таблицы. Для этого тега добавляем стилевое свойство background, оно одновременно определяет цвет фона и фоновый рисунок, а также его повторяемость (пример 3).

Пример 3. Использование фонового рисунка

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Таблица</title>
  <style type="text/css">
   TABLE {
    width: 300px; /* Ширина таблицы */
    border: 2px solid #2e8b57; /* Рамка вокруг таблицы */
   }
   THEAD {
    background: #2e8b57 url(images/tablebg.
gif) repeat-x; /* Параметры фона */ } TD, TH { padding: 3px; /* Поля вокруг содержимого ячеек */ text-align: center; /* Выравнивание по центру */ } .lc { font-weight: bold; /* Жирное начертание текста */ text-align: left; /* Выравнивание по левому краю */ } </style> </head> <body> <table cellspacing="0"> <thead> <tr> <th>&nbsp;</th><th>2004</th><th>2005</th><th>2006</th> </tr> </thead> <tr> <td>Рубины</td><td>43</td><td>51</td><td>79</td> </tr> <tr> <td>Изумруды</td><td>28</td><td>34</td><td>48</td> </tr> <tr> <td>Сапфиры</td><td>29</td><td>57</td><td>36</td> </tr> </table> </body> </html>

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

Свойство border-collapse — схлопывание границ

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

Данное свойство применяется только для таблиц и для элементов с

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

Синтаксис

селектор { border-collapse: collapse | separate; }

Значения

ЗначениеОписание
collapse Двойные границы будут выглядеть как одна. Есть побочные эффекты: перестанет работать свойство border-spacing и атрибут cellspacing
.
separate Каждая ячейка таблицы будет иметь свою границу (поэтому в некоторых местах границы будут двойными, если промежуток между ячейками нулевой).

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

Пример . Значение separate

Сейчас в таблице все границы двойные (граница задана и ячейкам, и самой таблице):

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </table>

table { border-collapse: separate; width: 400px; border-spacing: 0; border: 1px solid red; } td { border: 1px solid red; text-align: center; }

:

Пример .

Значение separate

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

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </table>

table { border-collapse: separate; width: 400px; border-spacing: 0; } td { border: 1px solid red; text-align: center; }

:

Пример . Значение collapse

Сейчас в таблице все границы схлопнутся и станут выглядеть толщиной в 1px, как и хотелось бы:

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </table> table { border-collapse: collapse; width: 400px; border: 1px solid red; } td { border: 1px solid red; text-align: center; }

:

CSS3 | Стилизация таблиц

Стилизация таблиц

Последнее обновление: 21. 04.2016

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

  • border-collapse: устанавливает, как будет стилизоваться граница смежных ячеек

  • border-spacing: устанавливает промежутки между границами смежных ячеек

  • caption-side: устанавливает положение элемента caption

  • empty-cells: задает режим отрисовки для пустых ячеек

  • table-layout: определяет размеры таблицы

  • Установка таблицы

    Ранее для установки границы в таблице широко использовался атрибут border, например:

    
    <table border="2px" >
    

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

    
    table {
    	border: 1px solid #ccc;	 /* граница всей таблицы */
    }
    tr {
    	border: 1px solid #ccc;	 /* границы между строками */
    }
    td, th {
    	border: 1px solid #ccc;	 /* границы между столбцами */
    }
    

    При установке границ между столбцами с помощью свойства border-collapse можно установить общую или раздельную границу между смежными ячейками:

    • collapse: смежные ячейки имеют общую границу

    • separate: смежные ячейки имеют отдельные границы, которые разделяются пространством

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

    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>Стилизаци таблиц в CSS3</title>
            <style>
    		table {
    			border: 1px solid #ccc;
    			border-spacing: 3px;
    		}
    		
    		td, th{
                border: solid 1px #ccc;
            }
    		. collapsed{
    			border-collapse: collapse;
    		}
    		.separated{
    			border-collapse: separate;
    		}
            </style>
        </head>
        <body>
    		<h4>Collapse</h4>
    		<table>
    			<tr><th>Модель</th><th>Производитель</th><th>Цена</th></tr>
    			<tr><td>Lumia 950</td><td>Microsoft</td><td>29900</td></tr>
    			<tr><td>iPhone 6S</td><td>Apple</td><td>52900</td></tr>
    			<tr><td>Nexus 6P</td><td>Huawei</td><td>49000</td></tr>
    		</table>
    		<h4>Separate</h4>
    		<table>
    			<tr><th>Модель</th><th>Производитель</th><th>Цена</th></tr>
    			<tr><td>G 5</td><td>LG</td><td>44900</td></tr>
    			<tr><td>HTC 10</td><td>HTC</td><td>49900</td></tr>
    			<tr><td>Nexus 5X</td><td>Google/LG</td><td>25000</td></tr>
    		</table>
    	</body>
    </html>
    

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

    Свойство empty-cells позволяет стилизовать пустые ячейки с помощью одного из следующих значений:

    • show: пустые ячейки отображаются, значение по умолчанию

    • hide: пустые ячейки не отображаются

    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>Стилизаци таблиц в CSS3</title>
            <style>
    		table {
    			border: 1px solid #ccc;
    			border-spacing: 3px;
    		}
    		
    		td, th{
                border: solid 1px #ccc;
            }
    		. hidden-empty-cells{
    			empty-cells: hide;
    		}
            </style>
        </head>
        <body>
    		<h4>Show</h4>
    		<table>
    			<tr><th>Модель</th><th>Производитель</th><th>Цена</th></tr>
    			<tr><td>Lumia 950</td><td>Microsoft</td><td>29900</td></tr>
    			<tr><td>iPhone 6S</td><td></td><td></td></tr>
    			<tr><td>Nexus 6P</td><td>Huawei</td><td>49000</td></tr>
    		</table>
    		<h4>Hide</h4>
    		<table>
    			<tr><th>Модель</th><th>Производитель</th><th>Цена</th></tr>
    			<tr><td>G 5</td><td>LG</td><td>44900</td></tr>
    			<tr><td>HTC 10</td><td></td><td></td></tr>
    			<tr><td>Nexus 5X</td><td>Google/LG</td><td>25000</td></tr>
    		</table>
    	</body>
    </html>
    

    Позиционирование заголовка

    Свойство caption-side управляет позицией заголовка и может принимать следующие значения:

    • top: позиционирование заголовка вверху (значение по умолчанию)

    • bottom: позиционирование заголовка внизу

    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>Стилизаци таблиц в CSS3</title>
            <style>
    		table {
    			border: 1px solid #ccc;
    			border-spacing: 3px;
    		}
    		
    		caption {
    		
    			font-weight: bold;
    		}
    		
    		td, th{
                border: solid 1px #ccc;
            }
    		. captionBottom{
    			caption-side: bottom;
    		}
            </style>
        </head>
        <body>
    		<h4>Top</h4>
    		<table>
    			<caption>Флагманы 2015 года</caption>
    			<tr><th>Модель</th><th>Производитель</th><th>Цена</th></tr>
    			<tr><td>Lumia 950</td><td>Microsoft</td><td>29900</td></tr>
    			<tr><td>iPhone 6S</td><td>Apple</td><td>52900</td></tr>
    			<tr><td>Nexus 6P</td><td>Huawei</td><td>49000</td></tr>
    		</table>
    		<h4>Bottom</h4>
    		<table>
    			<caption>Новинки 2016 года</caption>
    			<tr><th>Модель</th><th>Производитель</th><th>Цена</th></tr>
    			<tr><td>G 5</td><td>LG</td><td>44900</td></tr>
    			<tr><td>HTC 10</td><td>HTC</td><td>49900</td></tr>
    			<tr><td>iPhone SE</td><td>Apple</td><td>37000</td></tr>
    		</table>
    	</body>
    </html>
    

    Управление размером таблицы

    С помощью свойства table-layout можно управлять размером таблицы. По умолчанию это свойство имеет значение auto, при котором браузер устанавливает ширину столбцов таблицы автоматически, исходя из ширины самой широкой ячейки в столбце. А из ширины отдельных столбцов складывается ширина всей таблицы.

    Однако с помощью другого значения — fixed можно установить фиксированную ширину:

    
    table {
    	border: 1px solid #ccc;
    	border-spacing: 3px;
    	table-layout: fixed;
    	width:350px; 
    }
    

    Вертикальное выравнивание ячеек

    Как правило, содержимое ячеек таблицы выравнивается по центру ячейки. Но с помощью свойства vertical-align это поведение можно переопределить. Это свойство принимает следующие значения:

    • top: выравнивание содержимого по верху ячейки

    • baseline: выравнивание первой строки текста по верху ячейки

    • middle: выравнивание по центру (значение по умолчанию)

    • bottom: выравнивание по низу

    Свойство vertical-align применяется только к элементам <th> и <td>:

    
    td, th{
        border: solid 1px #ccc;
    	vertical-align: bottom;
    	height: 30px;
    }
    

    Текст таблицы перекрывает границы в Internet Explorer — Browsers

    • Чтение занимает 2 мин

    В этой статье

    Важно!

    Настольное приложение Internet Explorer 11 будет снято с службы поддержки 15 июня 2022 г. (список того, что имеется в области, см. в faq). Те же приложения и сайты IE11, которые вы используете сегодня, могут открываться в Microsoft Edge режиме Internet Explorer. Подробнее см. здесь.

    В этой статье данная статья предоставляет решения для решения ситуации, когда текст таблицы перекрывает границу или теряется на веб-странице из-за высоты таблицы в Internet Explorer, не может настроить заданной элементов уровня блока.

    Оригинальная версия продукта:   Internet Explorer 11, Internet Explorer 10, Internet Explorer 9
    Исходный номер КБ:   3121136

    Симптомы

    При использовании таблиц, содержащих блоковые элементы в Internet Explorer, вы испытываете следующие симптомы:

    • Внутренний текст перекрывает границу таблицы.
    • Отсутствуют части внутреннего текста.

    Следующие версии Internet Explorer затронуты этой проблемой:

    • Internet Explorer 9 и Internet Explorer 10 во всех режимах документов, кроме Quirks.
    • Internet Explorer 11 во всех режимах документов, кроме Edge и Quirks.

    Причина

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

    Решение

    Чтобы устранить эту проблему, рекомендуется сделать следующее:

    • В Windows 10 используйте Microsoft Edge.

    • В других Windows перенагреться до Internet Explorer 11, а затем отрисовываю страницу в режиме edge document.

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

      Первоначальный код

      <!DOCTYPE HTML>
      <html>
      <body>
          <table>
              <tr>
                  <td>
                      <div>
                          This text overlaps<br />
                          the<br />
                          blue<br />
                          border<br />
                      </div>
                  </td>
              </tr>
          </table>
      </body>
      </html>
      

      Код замены

      <!DOCTYPE HTML>
      <html>
      <body>
          <table>
              <tr>
                  <td>
                          <table>
                          <tr>
                              <td>
                                  This text fits within<br />
                                  the<br />
                                  blue<br />
                                  border<br />
                              </td>
                          </tr>
                      </table>
                  </td>
              </tr>
          </table>
      </body>
      </html>
      

    КАК: Использование CSS для добавления внутренних границ в таблицу HTML

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

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

    Границы таблицы CSS

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

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

    Прежде чем ты начнешь

    Определите, где вы хотите, чтобы строки отображались в таблице. У вас есть несколько вариантов, в том числе:

    • Окружать все ячейки, чтобы сформировать сетку
    • Позиционирование линий между столбцами
    • Только между рядами
    • Между конкретными столбцами или строками.

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

    Как добавить строки вокруг всех ячеек таблицы

    Чтобы добавить строки вокруг всех ячеек в таблице, создав эффект сетки, добавьте следующее в таблицу стилей:

    td, th {граница: сплошной 1px черный;}

    Как добавить строки между столбцами в таблице

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

    td, th {border-left: solid 1px black;}

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

    не класс = «нет границы»>

    Затем добавьте следующий стиль в таблицу стилей:

    .без границ {border-left: none;}

    Как добавить строки между строками в таблице

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

    tr {border-bottom: solid 1px black;}

    Чтобы удалить границу со дна таблицы, вы еще раз добавите класс к этому

    тег:

    не класс = «нет границы»>

    Добавьте следующий стиль в таблицу стилей:

    .без границ {border-bottom: none;}

    Как добавить строки между конкретными столбцами или строками в таблице

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

    класс = «боковой границы»>

    Добавление строк между строками проще, потому что вы можете добавить класс в строку, в которую вы хотите включить строку.

    класс = «границы снизу»>

    Затем добавьте CSS в таблицу стилей:

    .border-side {border-left: solid 1px black;}.border-bottom {border-bottom: solid 1px black;}

    Как добавить строки вокруг отдельных ячеек в таблице

    Чтобы добавить строки вокруг отдельных ячеек, вы добавляете класс к ячейкам, которым нужна граница:

    класс = «границы»>

    Затем добавьте следующий CSS в таблицу стилей:

    .border {граница: сплошной 1px черный;}

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

    Если вы хотите добавить строки внутри содержимого ячейки, самый простой способ сделать это — использовать тег горизонтального правила ().

    Полезные советы

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

    Таблица {пограничный крах: сбой;}

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

    Таблицы | HTML

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

    Разметка таблицы содержит в себе несколько основных элементов:

    • Тег <table>. Определяет границу таблицы.
    • Тег <tr>. Создание строки.
    • Тег <td>. Создание ячейки.
    • Тег <th>. Создание ячейки с заголовком.

    Создадим таблицу из двух строк и трёх столбцов

    Первая ячейкаВторая ячейкаТретья ячейка
    Первая ячейкаВторая ячейкаТретья ячейка

    Каждая таблица начинается с тега <table>, без которого теги строк и ячеек не будут работать

    <table>
        <!-- Здесь будут данные таблицы -->
    </table>
    

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

    <table>
        <tr> <!-- Строка -->
            <td>Первая ячейка</td>
            <td>Вторая ячейка</td>
            <td>Третья ячейка</td>
        </tr>
    </table>
    

    Теперь скопируем строку и получим готовую таблицу из двух строк и трёх столбцов.

    <table>
        <tr> <!-- Строка -->
            <td>Первая ячейка</td>
            <td>Вторая ячейка</td>
            <td>Третья ячейка</td>
        </tr>
    
    
        <tr> <!-- Вторая строка -->
            <td>Первая ячейка</td>
            <td>Вторая ячейка</td>
            <td>Третья ячейка</td>
        </tr>
    </table>
    

    Для того, чтобы первую строку сделать заголовками, нужно совершить два действия:
    1. Обернуть строку в тег <thead>. Это позволит в будущем задать оформление для строки с заголовками с помощью стилей.
    2. Заменить теги <td> на <th>, которые специально созданы для обозначения заголовков таблиц. Помимо логического выделения таких столбцов, браузеры также выделяют текст внутри них жирным, что позволяет быстро находить эти заголовки в таблице.

    <table>
        <thead> <!-- Блок с заголовками -->
            <tr> <!-- Строка -->
                <th>Первая ячейка</th>
                <th>Вторая ячейка</th>
                <th>Третья ячейка</th>
            </tr>
        </thead>
    
        <tr> <!-- Вторая строка -->
            <td>Первая ячейка</td>
            <td>Вторая ячейка</td>
            <td>Третья ячейка</td>
        </tr>
    </table>
    

    Последним шагом станет добавление тега <tbody>. Часто разработчики его упускают, потому что браузеры автоматически оборачивают им группу строк, которые не обёрнуты в другие теги. Обратите внимание — тег <tbody> чаще всего только один в таблице. В больших таблицах можно использовать несколько <tbody>, чтобы отделить разные секции в таблице, но в большинстве случаев в этом нет необходимости.

    <table>
        <thead> <!-- Блок с заголовками -->
            <tr> <!-- Строка -->
                <th>Первая ячейка</th>
                <th>Вторая ячейка</th>
                <th>Третья ячейка</th>
            </tr>
        </thead>
    
        <tbody> <!-- Тело таблицы -->
            <tr> <!-- Вторая строка -->
                <td>Первая ячейка</td>
                <td>Вторая ячейка</td>
                <td>Третья ячейка</td>
            </tr>
        </tbody>
    </table>
    

    Таблица готова. В ней присутствуют заголовки и тело таблицы. В большинстве случаев этого достаточно для того, чтобы использовать таблицы на HTML-странице.

    Задание

    Создайте таблицу из 3 строк с 2 ячейками в каждой. Первая строка содержит в себе заголовки таблицы


    QTextDocument: границы ячеек в таблице

    Я с текстДокументом не работал, но еще один из наркоманских вариантов — загнать все в html и распечатать из webView 

    А ведь это мысля! Табличка рисуется гораздо проще и аккуратнее, спасибо за совет!
    Но вот с печатью пока беда. Накодил что-то такое:

    C++ (Qt)

    void MainWindow::preview(){
       QPrinter printer;
       printer.setPageSize(QPrinter::A4);
       printer.setOrientation(QPrinter::Portrait);
       printer.setPageMargins(10,10,10,10,QPrinter::Millimeter);
     
       QPrintPreviewDialog print_preview(&printer, this);
       print_preview.setWindowState(Qt::WindowMaximized);
       connect(&print_preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(paint_pages(QPrinter*)));
       print_preview. exec();
    }
     
    void MainWindow::paint_pages(QPrinter *printer){
       QList<QWebView*> pages;
       QWebView *current = 0;
       QPainter painter(printer);
       int i = 0;
       while(i <= 100){
           current = new QWebView();
           pages << current;
           i = populate_web(current, printer, i);
       }
       int pc = pages.count();
       for(i = 0; i < pc; i++){
           if(i != 0) printer->newPage();
           pages.at(i)->render(&painter);
       }
       for(i = 0; i < pc; i++)
           delete pages.at(i);
    }
     
     
    int MainWindow::populate_web(QWebView *pg, QPrinter *printer, int n){
       QString html = "<html><body>";
       html += "<table cellspacing=0 border = 1>";
       int page_height = printer->paperRect(QPrinter::Point).height();
       for(++n; n <= 100; n++){
           html += QString("<tr><td width=200>%1</td><td width=200>%2</td><td width=300>%3</td></tr>"). arg(n).arg(n*n).arg(n*n*n);
           QString html2 = html + "</table></body></html>";
           pg->setHtml(html2);
           int content_height = pg->page()->mainFrame()->contentsSize().height();
           if(content_height + 20 > page_height)
               break;
       }
       html += "</table></body></html>";
     
       pg->setHtml(html);
       return n;
    }
     

    То есть я хочу вывести таблицу из ста строк, разбив её на две (или сколько потребуется) страницы. В функции populate_web есть цикл, который добавляет строку к таблице и заодно отслеживает приближение конца страницы, сравнивая content_height и page_height. Но вместо таблицы на всю страницу с аккуратными десятимиллиметровыми полями я получаю вот такую бяку (ссылка, ибо картинка великовата для вставки).

    Причём скроллбар появляется только со второй страницы, на первой его нет. Что с этим делать? С QWebView раньше не работал, так что мог пропустить что-то совсем очевидное 

    HTML Таблица размеров


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



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


    HTML Ширина таблицы

    Чтобы задать ширину таблицы, добавьте стиль атрибут элемента

    :

    Пример

    Установите ширину таблицы на 100%:

    <таблица>
















    Имя Фамилия Возраст
    Джилл Смит 50
    Ева Джексон 94

    Попробуй сам »

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


    Ширина столбца таблицы HTML

    Чтобы установить размер определенного столбца, добавьте стиль атрибут на или элемент:

    Пример

    Установите ширину первого столбца на 70%:

    <таблица>

    Имя
    Фамилия
    Возраст


    Джилл
    Смит
    50


    Ева
    Джексон
    94

    Попробуй сам »

    HTML Высота строки таблицы

    Чтобы установить высоту определенной строки, добавьте стиль атрибут в элементе строки таблицы:

    Пример

    Установите высоту второй строки на 200 пикселей:

    <таблица>

    Имя
    Фамилия
    Возраст


    Джилл
    Смит
    50


    Ева
    Джексон
    94

    Попробуй сам »

    Упражнения HTML

    Проверьте себя упражнениями

    упражнение:

    Используйте стили CSS, чтобы сделать таблицу шириной 300 пикселей.

    <таблица>

    Имя
    Фамилия
    Очки


    Джилл
    Смит
    50


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

    Начало упражнения




    A Пошаговое руководство

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

    Найдите свой учебный лагерь Match