Атрибут: Rowspan
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Этот атрибут объединяет несколько соседних друг с
другом ячеек из соседних строк в одну большую ячейку. Значением
является число определяющее количество объединеных ячеек. Посмотрите пример 6:
Исходный код этой таблицы:
В этой таблице мы видим, что первые ячейки первой и второй строки объеденены. Добились мы этого с помощью атрибута "rowspan", выставив его значение равным "2". То есть этим мы дали понять браузеру, что первая ячейка первой строки должна объединиться с первой ячейкой второй строки. Теперь посмотрите на код таблице. Во второй строке прописаны только три ячейки. И это правильно так как первую ячейку и все ее пространство поглотила первая ячейка первой строки. Очень важно правильно писать код когда Вы объединяете ячейки соседних строк. Дело в том, что если мы запишем ячейку в которой имеется атрибут "rowspan" не в первую строку, а во вторую мы получим вот такую таблицу; Пример 7:
Исходный код этой таблицы:
Ну как видите , что получилось? А это уже пародия на таблицу. Так писать не верно. Попробую сформулировать правило. Если вы объединяете ячейки соседних строк, то в коде таблицы ячейка с атрибутом "rowspan" записывается в самой верхней из строк, ячейки которых объеденились. Ячейки, которые были поглощены в других строках, не записываются. Думаю понятно. Теперь еще раз взглянем на нашу таблицу (Пример 6). Таблица поменяла вид, то есть теперь ячейки не одинаковы по ширине. Произошло это потому, что мы не указали, какой ширины должны быть ячейки. Попробую объяснить, как действует браузер в этом случае. Итак, браузер нашел тег <Body> и прочитал его атрибут "width" равный 300 пикселям. Теперь браузер знает, что ширина таблицы 300 пикселей и, что он должен вместить в эту ширину содержимое всех ячеек. Он читает дальше и натыкается на теги <Tr> и <TD>, но ни в одном из этих тегов он не находит атрибута указывающего какой ширины должны быть ячейки. Дальше он читает содержимое первой ячейки первой строки, оценивает его объем. Дальше он проверяет содержимое других ячеек, оценивает их объем и выясняет для себя, на сколько он может сжать эти ячейки, чтобы вывести содержимое первой ячейки в одну строку. То есть, на сколько объем содержимого других ячеек позволит ему сжать эти ячейки. Он выводит содержимое первой ячейки в одну строку, раздвигая первую ячейку и одновременно сжимая остальные (насколько это можно). То, что не поместилось, в одну он переводит на другую строку. Если ширина ячеек не указана, то браузер отдает все свободное место, таблицы, ячейке у которой объем содержимого больше содержимого других ячеек. Если бы мы для каждой ячейки задали ее ширину, этого бы не произошло. В этом случае браузер прочитает, что каждая ячейка имеет свою ширину, а это одновременно означает, что раздвигать ячейку нельзя. И он выводя содержимое первой ячейки, перенесет на другую строку, то что не поместилось в указанную ширину. Вот таблица из примера 6, только для ячеек уже задана ширина. Пример 8
Исходный код этой таблицы:
Как видите, я указал ширину ячеек только в первой строке. Ячейки других строк автоматически принимают ширину соседних, в столбце, ячеек. Вот еще один пример. Пример 9
Исходный код этой таблицы:
И еще один немножко похитрее пример. Пример 10
Исходный код этой таблицы:
В этом примере уже одновременное объединение двух соседних ячеек одной строки (атрибут "colspan") и ячеек двух соседних строк (атрибут "rowspan"). Посмотрите здесь я подробно описал эту таблицу. |
Помимо этих атрибутов есть и другие. Но некоторые из них по разному отображаются в разных браузерах, некоторые на данном этапе обучения Вам просто не нужны. Зачем забивать голову лишним. Я не ставил перед собой цели описывать все элементы, атрибуты и их значения. Для этого есть спецификация HTML. Если Вам нужен полный список элементов таблицы, их атрибутов и значений, загляните в спецификацию.