E-mail Добавить в "Избранное" Сделать "ТвойWeb" стартовой
Здесь находится флеш баннер. Чтобы увидеть его Вы должны установить Flashplayer
 
Новости сайта
02 [F]апреля, 2006
08 [F]декабря, 2005
17 [F]октября, 2005
16 [F]июля, 2005
25 [F]декабря, 2004
======================
Предыдущие новости
<< < 01 02 03 04 05 > >>
 
 
 

Таблицы (частьIV)

Элемент Td
 
атрибут Rowspan
Этот атрибут объединяет несколько соседних друг с другом ячеек из соседних строк в одну большую ячейку. Значением является число определяющее количество объединеных ячеек.
Посмотрите пример 6;
1-ые ячейки двух строк 2 ячейка 3 ячейка 4 ячейка
2 ячейка 3 ячейка 4 ячейка
1 ячейка 2 ячейка 3 ячейка 4 ячейка
<table width="300" border="1" bgcolor="#EED7FF">
<tr>
<td rowspan="2">1-ые ячейки двух строк</td>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
<tr>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
<tr>
<td>1 ячейка </td>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
</table>
В этой таблице мы видим, что первые ячейки первой и второй строки объеденены. Добились мы этого с помощью атрибута "rowspan", выставив его значение равным "2". То есть этим мы дали понять браузеру, что первая ячейка первой строки должна объединиться с первой ячейкой второй строки. Теперь посмотрите на код таблице. Во второй строке прописаны только три ячейки. И это правильно так как первую ячейку и все ее пространство поглотила первая ячейка первой строки. Очень важно правильно писать код когда Вы объединяете ячейки соседних строк. Дело в том, что если мы запишем ячейку в которой имеется атрибут "rowspan" не в первую строку, а во вторую мы получим вот такую таблицу;
Пример 7;
2 ячейка 3 ячейка 4 ячейка
1-ые ячейки двух строк 2 ячейка 3 ячейка 4 ячейка
1 ячейка 2 ячейка 3 ячейка 4 ячейка
Вот код для такой таблицы;
<table width="300" border="1" bgcolor="#EED7FF">
<tr>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
<tr>
<td rowspan="2">1-ые ячейки двух строк</td>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
<tr class="small">
<td>1 ячейка </td>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
</table>
Ну как видите , что получилось? А это уже пародия на таблицу. Так писать не верно. Попробую сформулировать правило.
Если вы объединяете ячейки соседних строк, то в коде таблицы ячейка с атрибутом "rowspan" записывается в самой верхней из строк, ячейки которых объеденились. Ячейки, которые были поглощены в других строках, не записываются. Думаю понятно.
Теперь еще раз взглянем на нашу таблицу (Пример 6). Таблица поменяла вид, то есть теперь ячейки не одинаковы по ширине. Произошло это потому, что мы не указали, какой ширины должны быть ячейки. Попробую объяснить, как действует браузер в этом случае. Итак, браузер нашел тег <Body> и прочитал его атрибут "width" равный 300 пикселям. Теперь браузер знает, что ширина таблицы 300 пикселей и, что он должен вместить в эту ширину содержимое всех ячеек. Он читает дальше и натыкается на теги <Tr> и <TD>, но ни в одном из этих тегов он не находит атрибута указывающего какой ширины должны быть ячейки. Дальше он читает содержимое первой ячейки первой строки, оценивает его объем. Дальше он проверяет содержимое других ячеек, оценивает их объем и выясняет для себя, на сколько он может сжать эти ячейки, чтобы вывести содержимое первой ячейки в одну строку. То есть, на сколько объем содержимого других ячеек позволит ему сжать эти ячейки. Он выводит содержимое первой ячейки в одну строку, раздвигая первую ячейку и одновременно сжимая остальные (насколько это можно). То, что не поместилось, в одну он переводит на другую строку. Если ширина ячеек не указана, то браузер отдает все свободное место, таблицы, ячейке у которой объем содержимого больше содержимого других ячеек. Если бы мы для каждой ячейки задали ее ширину, этого бы не произошло. В этом случае браузер прочитает, что каждая ячейка имеет свою ширину, а это одновременно означает, что раздвигать ячейку нельзя. И он выводя содержимое первой ячейки, перенесет на другую строку, то что не поместилось в указанную ширину.
Вот таблица из примера 6, только для ячеек уже задана ширина.
Пример 8;
1-ые ячейки двух строк 2 ячейка 3 ячейка 4 ячейка
2 ячейка 3 ячейка 4 ячейка
1 ячейка 2 ячейка 3 ячейка 4 ячейка
А вот и исходный код;
<table width="300" border="1" bgcolor="#EED7FF">
<tr>
<td rowspan="2" width="75">1-е ячейки двух строк</td>
<td width="75">2 ячейка</td>
<td width="75">3 ячейка</td>
<td width="75">4 ячейка</td>
</tr>
<tr>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
<tr>
<td>1 ячейка </td>
<td>2 ячейка</td>
<td>3 ячейка</td>
<td>4 ячейка</td>
</tr>
</table>
Как видите, я указал ширину ячеек только в первой строке. Ячейки других строк автоматически принимают ширину соседних, в столбце, ячеек.
Вот еще один пример.
Пример 9;
1-ые ячейки 3х строк 2 ячейка 3 ячейка 4-ые ячейки 3х строк
2 ячейка 3 ячейка
2 ячейка 3 ячейка
Исходный код таблицы;
<table width="300" border="1" bgcolor="#EED7FF">
<tr>
<td rowspan="3" width="75">1-е ячейки 3х строк</td>
<td width="75">2 ячейка</td>
<td width="75">3 ячейка</td>
<td width="75" rowspan="3">4-е ячейки 3х строк</td>
</tr>
<tr>
<td>2 ячейка</td>
<td>3 ячейка</td>
</tr>
<tr>
<td>2 ячейка</td>
<td>3 ячейка</td>
</tr>
</table>
И еще один немножко похитрее пример.
Пример 10;
1 ячейка 2 ячейка 3 ячейка 4 ячейка
1 ячейка 2 и 3- я ячейка 2х строк 4 ячейка
1 ячейка 4 ячейка
<table width="300" border="1" bgcolor="#EED7FF">
<tr>
<td width="75">1 ячейка</td>
<td width="75">2 ячейка</td>
<td width="75">3 ячейка</td>
<td width="75">4 ячейка</td>
</tr>
<tr>
<td width="75">1 ячейка</td>
<td colspan="2" rowspan="2">2 и 3- я ячейка 2х строк</td>
<td>4 ячейка</td>
</tr>
<tr>
<td width="75">1 ячейка</td>
<td>4 ячейка</td>
</tr>
</table>
В этом примере уже одновременное объединение двух соседних ячеек одной строки (атрибут "colspan") и ячеек двух соседних строк (атрибут "rowspan"). Посмотрите здесь я подробно описал эту таблицу. Советую также посетить раздел "Хитрости HTML", советы и уроки "Таблицы - маленькие хитрости".
К оглавлению Наверх Дальше