
- •Теоретический материал для подготовки к практической работе по теме «Создание и оформление таблиц» (средствами xhtml и css)
- •Реализуйте на практике листинги 1-8.
- •1. Табличные теги
- •2. Рамки таблицы
- •3. Размеры таблицы
- •4. Выравнивание содержимого ячеек таблицы
- •5. Задание параметров столбцов
- •6. Сложные таблицы
- •6.1. Расширение ячеек
- •6.2. Прокручиваемая таблица
- •7. Декорирование таблицы
2. Рамки таблицы
Как уже отмечалось, по умолчанию таблица отображается без рамок (видимых границ). Задание рамок относится к задаче внешнего оформления таблицы. Однако их видимость делает геометрическую структуру таблицы более наглядной. Даже если наличие рамок таблицы не соответствует вашему дизайнерскому плану, их все же полезно отобразить, по крайней мере, на этапе проектирования и отладки кода. Позже их легко можно удалить. Поэтому начнем с определения рамок.
Чтобы отобразить внешнюю рамку таблицы, а также индивидуальные рамки ячеек, в теге <table> можно указать целочисленное значение атрибута border, определяющее ее толщину (в пикселах), например <table border="5">. При этом указанную толщину будет иметь только внешняя рамка таблицы, а толщина рамок ячеек останется равной 1 рх. Каждая ячейка имеет собственную рамку, а между рамками соседних ячеек предусмотрен некоторый зазор, поэтому разделительные линии кажутся двойными. Если атрибут border не указывать или задать ему нулевое значение, то таблица отобразится без рамок. На рис.2 показаны примеры таблицы с различными значениями атрибута border. Внешняя рамка отображается в оттенках серого цвета, причем разных для различных частей рамки, что можно заметить при достаточно большой ее толщине. Однако собственно оттенки могут различаться в разных браузерах.
Отображением рамок можно управлять с помощью атрибутов frame и rules. Хотя это нестандартные атрибуты, их поддерживают ведущие браузеры.
С помощью атрибута frame можно дополнительно указать, какие части внешней рамки следует отображать, а какие нет. Данный атрибут действует только при указанном в <table> атрибуте border с ненулевым значением, например,
<table border="3" frames=''box">
Значения атрибута frame:
bох - отображать все четыре стороны рамки;
above - отображать только верхнюю часть рамки;
below - отображать только нижнюю часть рамки;
hsides - отображать горизонтальные части рамки сверху и снизу;
vsides - отображать только левую и правую вертикальные части рамки;
lhs - отображать только левую часть рамки;
rhs - отображать только правую часть рамки;
void - не отображать внешнюю рамку.
На рис. показано несколько примеров применения атрибута frame.
Отображением внутренних разделительных линий (рамок ячеек) управляет атрибут rules, который действует только при указанном в <table> атрибуте border с ненулевым значением, например
<table border="3" rules="cols">
Значения атрибута rules:
all - отображать все вертикальные и горизонтальные линии;
rows - отображать только горизонтальные линии между строками;
cols - отображать только вертикальные линии между столбцами;
n
one
- не отображать разделительные линии.
На рис. показано несколько примеров применения атрибута rules.
Обратите внимание, что при использовании атрибута rules со значением, отличным от none, внешняя рамка имеет несколько иной вид. При этом внутренние разделительные линии одинарные, а не двойные. Однако Internet Explorer 6.0, а также версии 7 и 8 в режиме предоставления совместимости отображают двойные разделительные линии.
Д
ля
обеспечения межбраузерной совместимости
управлять отображением рамок таблицы
рекомендуется с помощью параметров
CSS.
В HTML
5 рассмотренные атрибуты рамок вообще
не предусмотрены. Чтобы отобразить
рамку, достаточно применить стилевой
параметр border
или более конкретные параметры этой же
группы (border-top,
border-left,
border-style
и т. п.), которые задают границу любого
элемента, в том числе и <table>,
<td>
и <th>.
Установить двойные или одинарные разделительные линии можно с помощью стилевого параметра border-collapse, принимающего следующие значения:
collapse - установить одинарные разделительные линии (т. е. для смежных ячеек отображать одну общую рамку);
separate - установить двойные разделительные линии (т. е. для каждой ячейки отображать отдельную рамку).
Задание параметра border-collapse само по себе еще не приводит к отображению рамок. Чтобы рамки появились, необходимо еще указать их толщину, например border: solid 1px. На рис. приведено несколько примеров управления отображением рамок посредством CSS.
Если задан параметр border-collapse:separate (установить собственные рамки или границы ячеек), то с помощью атрибута cellspacing тега <tabдe> можно указать расстояние между границами ячеек, например
<table cellspacing= "10">
Для этой же цели служит стилевой параметр border-spacing, принимающий одно или два числовых значения с указанием размерности. Если указано единственное значение, то оно определяет расстояние между границами и по горизонтали, и по вертикали. Если указаны два значения (например, border-spacing:10рх 15рх,), то первое из них задает расстояние по горизонтали, а второе - по вертикали. Однако Internet Explorer версий 7, 8 в режиме предоставления совместимости и более ранние версии не воспринимают параметр border-spacing.
Попытка применить к ячейкам стилевой параметр margin (поле вокруг ячейки) с целью задать расстояние между их границами результата не даст.