Опубликован: 19.05.2006 | Доступ: свободный | Студентов: 10205 / 1645 | Оценка: 4.29 / 4.03 | Длительность: 22:29:00
ISBN: 978-5-94774-648-8
Лекция 11:

Таблицы

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

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

<!-- атрибуты горизонтального выравнивания содержимого ячейки -->
<!ENTITY % cellhalign
  "align      (left|center|right|justify|char) #IMPLIED
   char       %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ выравнивания, например, char=':' --
   charoff    %Length;       #ПРЕДПОЛАГАЕТСЯ  -- offset символа выравнивания --"
  >
<!-- атрибуты вертикального выравнивания содержимого ячейки -->
<!ENTITY % cellvalign
  "valign     (top|middle|bottom|baseline) #IMPLIED"
  >

Определения атрибутов

align = left|center|right|justify|char [CI]

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

  • left: влево - данные/текст влево. Значение по умолчанию для данных таблицы ;
  • center: по центру - данные/текст по центру. Это значение по умолчанию для заголовков таблицы ;
  • right: вправо - данные/текст вправо;
  • justify: выравнивание текста по формату;
  • char: Выравнивание текста по особому символу. Если ПА не поддерживает выравнивание по символу, поведение ПА при установленном (этом) значении не определено.

valign = top|middle|bottom|baseline [CI]

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

  • top: по верху ячейки;
  • middle: по центру ячейки. Это значение по умолчанию;
  • bottom: по нижней границе ячейки;
  • baseline: все ячейки в том же ряду, что и ячейка с данным установленным значением атрибута valign, должны установить свои текстовые данные так, чтобы первая строка текста появлялась на baseline/базовой линии, общей для всех ячеек ряда. Это ограничение не действует на последующие строки текста в этих ячейках.

char = character [CN]

Этот атрибут определяет одиночный символ во фрагменте текста, служащий осью выравнивания. Значением по умолчанию этого атрибута является символ десятичной точки текущего языка, установленного атрибутом lang (напр., точка (" .") в английском и запятая во французском (" ,")). ПА не обязаны поддерживать этот атрибут.

charoff = length [CN]

Если установлен, этот атрибут определяет offset/отсутствие первого в каждой строке символа выравнивания. Если строка не содержит символа выравнивания, она должна быть горизонтально смещена к концу позиции выравнивания.

Если charoff используется для установки офсета символа выравнивания, направление офсета определяется текущим направлением текста (установленным атрибутом dir ). В текстах слева-направо (по умолчанию) офсет слева. В текстах справа налево офсет справа. От ПА не требуется поддерживать данный атрибут.

В этой таблице ряд цен выровнен вокруг десятичной точки. Мы явно устанавливаем символ выравнивания " .".

<TABLE border="1">
<COLGROUP>
<COL><COL align="char" char=".">
<THEAD>
<TR><TH>Vegetable <TH>Cost per kilo
<TBODY>
<TR><TD>Lettuce        <TD>$1
<TR><TD>Silver carrots <TD>$10.50
<TR><TD>Golden turnips <TD>$100.30
</TABLE>

Форматирование может выглядеть примерно так:

------------------------------
|   Vegetable  |Cost per kilo|
|--------------|-------------|
|Lettuce       |        $1   |
|--------------|-------------|
|Silver carrots|       $10.50|
|--------------|-------------|
|Golden turnips|      $100.30|
------------------------------

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

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

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

Приоритет (от высшего к низшему) атрибутов align, char и charoff:

  1. Атрибут выравнивания, установленный для элемента внутри данных ячейки (например, P ).
  2. Атрибут выравнивания, установленный для ячейки ( TH и TD ).
  3. Атрибут выравнивания, установленный для элемента группировки столбцов ( COL и COLGROUP ). Если ячейка является частью блока, охватывающего несколько столбцов, то свойство выравнивания наследуется из определения ячейки в начале этого блока.
  4. Атрибут выравнивания, установленный в ряду или группе рядов (элементы TR, THEAD, TFOOT и TBODY ). Если ячейка является частью блока, охватывающего несколько рядов, то свойство выравнивания наследуется из определения ячейки в начале этого блока.
  5. Атрибут выравнивания, установленный в таблице ( TABLE ).
  6. Значение ( выравнивания ) по умолчанию.

Приоритет (от высшего к низшему) для атрибута valign (как и для других наследуемых атрибутов lang, dir, и style ):

  1. Атрибут, установленный в элементе внутри данных ячейки (напр., P ).
  2. Атрибут, установленный в ячейке ( TH и TD ).
  3. Атрибут, установленный в элементе ряда или группы рядов ( TR, THEAD, TFOOT и TBODY ). Если ячейка является частью блока, охватывающего несколько рядов, то свойство выравнивания наследуется из определения ячейки в начале этого блока.
  4. Атрибут, установленный в элементе группировки столбцов ( COL и COLGROUP ). Если ячейка является частью блока, охватывающего несколько столбцов, то свойство выравнивания наследуется из определения ячейки в начале этого блока.
  5. Атрибут, установленный в таблице ( TABLE ).
  6. Значение (атрибута) по умолчанию.

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

Значение выравнивания по умолчанию в ячейках зависит от ПА. Однако ПА должны замещать атрибуты по умолчанию для текущего направления (т.е. не просто "left" во всех случаях).

ПА, не поддерживающие значение "justify" атрибута align, должны вместо этого использовать наследуемое направление.

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

Поля ячейки

Определения атрибутов

cellspacing = length [CN]

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

cellpadding = length [CN]

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

Эти два атрибута управляют полями между ячейками и внутри них. Следующий рисунок поясняет эти соотношения:


В следующем примере атрибут cellspacing определяет, что ячейки должны отделяться друг от друга и от рамки таблицы полями размером 20 пикселов. Атрибут cellpadding определяет, что верхняя и нижняя границы ячейки отделяются от содержимого полями размером 10% доступного вертикального пространства (всего составляющего 20%). Таким же образом левая и правая границы ячейки отделяются от содержимого полями размером 10% доступного горизонтального пространства (всего составляющего 20%).

<TABLE cellspacing="20" cellpadding="20%">
<TR> <TD>Data1 <TD>Data2 <TD>Data3
</TABLE>

Если таблица или столбец имеют фиксированную ширину, cellspacing и cellpadding могут потребовать больше пространства, чем назначено. ПА могут дать этим атрибутам преимущество перед атрибутом width, если возникнет конфликт.

Ирина Кириллова
Ирина Кириллова

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