- •Введение в таблицы css
- •17.2 Модель таблиц css
- •17.2.1 Анонимные объекты таблицы
- •17.3 Селекторы столбцов
- •17.4 Таблицы в модели визуального форматирования
- •17.4.1 Положение и выравнивание заголовка
- •17.5 Визуальное расположение содержимого таблицы
- •17.5.1 Слои и прозрачность таблицы
- •17.5.2 Алгоритмы определения ширины таблицы: свойство 'table-layout'
- •Фиксированное расположение таблицы
- •Автоматическое расположение таблицы
- •17.5.3 Алгоритмы определения высоты таблицы
- •17.5.4 Горизонтальное выравнивание в столбце
- •17.5.5 Динамические эффекты строк и столбцов
- •17.6 Границы
- •17.6.1 Модель отдельных границ
- •Границы вокруг пустых ячеек: свойство 'empty-cells'
- •17.6.2 Модель с пересекающимися границами
- •Разрешение конфликтов между границами
- •17.6.3 Стили границ
- •17.7 Автоматическое представление таблиц
- •17.7.1 Произносимые заголовки: свойство 'speak-header'
17.6.3 Стили границ
Смысл некоторых значений свойства 'border-style' применительно к таблице и к другим элементам различен. В приведенном ниже списке такие значения помечены звездочкой.
none
Граница отсутствует.
*hidden
Аналогично значению 'none', но в модели с пересекающимися границами имеет приоритет над любыми другими границами (см. раздел о конфликтах между границами).
dotted
Граница представляется рядом точек.
dashed
Граница представляется рядом коротких линейных сегментов.
solid
Граница представляется единым сегментом линии.
double
Граница представляется двумя сплошными линиями. Сумма толщины двух линий и расстояния между ними равно значению 'border-width'.
groove
Граница выглядит вдавленной.
ridge
В противоположность 'groove', граница выглядит выпуклой.
*inset
В модели с отдельными границами весь выглядит вдавленным. В модели с пересекающимися границами это значение дает тот же эффект, что и значение 'groove'.
*outset
В модели с отдельными границами весь блок выглядит выпуклым. В модели с пересекающимися границами это значение дает тот же эффект, что и значение 'ridge'.
17.7 Автоматическое представление таблиц
Если таблица воспроизводится с помощью синтезатора речи, взаимодействие между ячейками данных и заголовками ячеек должно выражаться не с помощью горизонтального и вертикального выравнивания, а иным образом. Некоторые браузеры, поддерживающие голосовую передачу информации, дают пользователю возможность перемещаться в двумерном пространстве, позволяя представлять пространственно расположенные отношения. Если это невозможно, в таблице стилей должно быть указано, когда будут произноситься заголовки.
17.7.1 Произносимые заголовки: свойство 'speak-header'
'speak-header'
-
Значение:
once | always | inherit
Начальное значение:
once
Область применения:
элементы, имеющие информацию о заголовке таблицы
Наследование:
да
Процентное задание:
не применяется
Устройства:
звуковые
Это свойство определяет, произносятся ли заголовки таблицы перед каждой ячейкой, или только перед ячейкой, связанной с заголовком, отличным от заголовка предыдущей ячейки. Значения имеют следующий смысл:
once
Заголовок произносится только один раз перед рядом ячеек.
always
Заголовок произносится перед каждой ячейкой.
В каждом языке документа могут быть различные механизмы задания заголовков. Например, в HTML 4.0 ([HTML40]) информацию о заголовке можно представить с помощью трех различных атрибутов ("headers", "scope" и "axis"). Кроме того, в этой спецификации дается алгоритм для определения заголовочной информации в случае, если эти атрибуты не указаны.
[D]
Таблица, в которой ячейки заголовка ("Сан-Хосе" и "Сиэттл") находятся вне столбца или строки данных, к которым они применяются.
В этом примере на языке HTML представлены затраты на питание, проживание в отеле и транспорт в двух городах (Сан-Хосе и Сиэтл) в течение нескольких дней. В принципе, таблицу можно рассматривать как n-мерное пространство. К заголовкам этого пространства относятся: город, день, категория и промежуточная сумма. Некоторые ячейки определяют отметки на оси, другие - расходы в этой точке пространства. Разметка таблицы выглядит так:
<TABLE>
<CAPTION>Отчет о расходах на командировку</CAPTION>
<TR>
<TH></TH>
<TH>Питание</TH>
<TH>Гостиницы</TH>
<TH>Транспорт</TH>
<TH>сумма</TH>
</TR>
<TR>
<TH id="san-jose" axis="san-jose">Сан-Хосе</TH>
</TR>
<TR>
<TH headers="san-jose">25 авг. 97</TH>
<TD>37.74</TD>
<TD>112.00</TD>
<TD>45.00</TD>
<TD></TD>
</TR>
<TR>
<TH headers="san-jose">26 авг. 97</TH>
<TD>27.28</TD>
<TD>112.00</TD>
<TD>45.00</TD>
<TD></TD>
</TR>
<TR>
<TH headers="san-jose">сумма</TH>
<TD>65.02</TD>
<TD>224.00</TD>
<TD>90.00</TD>
<TD>379.02</TD>
</TR>
<TR>
<TH id="seattle" axis="seattle">Сиэттл</TH>
</TR>
<TR>
<TH headers="seattle">27 авг. 97</TH>
<TD>96.25</TD>
<TD>109.00</TD>
<TD>36.00</TD>
<TD></TD>
</TR>
<TR>
<TH headers="seattle">28 авг. 97</TH>
<TD>35.00</TD>
<TD>109.00</TD>
<TD>36.00</TD>
<TD></TD>
</TR>
<TR>
<TH headers="seattle">сумма</TH>
<TD>131.25</TD>
<TD>218.00</TD>
<TD>72.00</TD>
<TD>421.25</TD>
</TR>
<TR>
<TH>ИТОГО</TH>
<TD>196.27</TD>
<TD>442.00</TD>
<TD>162.00</TD>
<TD>800.27</TD>
</TR>
</TABLE>
Представляя данные таким образом, авторы дают возможность браузерам, поддерживающим голосовую передачу информации, огромные возможности представления таблицы. Например, каждая ячейка может произноситься как список, с повтором соответствующего заголовка перед каждой ячейкой данных:
Сан-Хосе, 25 авг. 97, Питание: 37.74
Сан-Хосе, 25 авг. 97, Проживание в гостинице: 112.00
Сан-Хосе, 25 авг. 97, Транспорт: 45.00
...
Браузеры могут также произносить заголовки только при их смене:
Сан-Хосе, 25 авг. 97, Питание: 37.74
Проживание в гостинице: 112.00
Транспорт: 45.00
26 авг. 97, Питание: 27.28
Проживание в гостинице: 112.00
...