как сделать такую таблицу? кто может объяснить работу тегов tr и td и атрибутов: rowspan и colspan.Как я могу сделать такую таблицу? Что нужно считать?
Пример с применением только базовых атрибутов табличек:
<table width=100% border=5>
<tr>
<td rowspan=4> 1 </td>
<td rowspan=4> 2 </td>
<td colspan=3 rowspan=2> 3 </td>
<td colspan=3> 4 </td>
</tr>
<tr>
<td colspan=3> 5 </td>
</tr>
<tr>
<td rowspan=2> 6 </td>
<td rowspan=2> 7 </td>
<td rowspan=2> 8 </td>
<td colspan=2> 9 </td>
<td rowspan=2> 10 </td>
</tr>
<tr>
<td> 11 </td>
<td> 12 </td>
</tr>
<tr>
<td rowspan=5> 13 </td>
<td> 14 </td>
<td> 15 </td>
<td> 16 </td>
<td> 17 </td>
<td> 18 </td>
<td> 19 </td>
<td rowspan=5> 20 </td>
</tr>
<tr>
<td rowspan=2> 21 </td>
<td> 22 </td>
<td> 23 </td>
<td> 24 </td>
<td> 25 </td>
<td> 26 </td>
</tr>
<tr>
<td> 27 </td>
<td> 28 </td>
<td> 29 </td>
<td> 30 </td>
<td> 31 </td>
</tr>
<tr>
<td> 32 </td>
<td> 33 </td>
<td> 34 </td>
<td> 35 </td>
<td> 36 </td>
<td> 37 </td>
</tr>
<tr>
<td colspan=4> 38 </td>
<td> 39 </td>
<td> 40 </td>
</tr>
</table>
Как уже написали, colspan - объединяет ячейки по горизонтали (колонки), rowspan - по вертикали (строки). Разберем на предложенном Вами примере. Берем первую ячейку, смотрим, подсчитываем - на её высоте сколько различных строк помещается - получается, что 4. пишем: <td rowspan=4>
. Сколько столбцов? Один - можно написать, конечно, colspan=1
, но это некрасиво и мне лень, поэтому ничего не будем дописывать. Следующая ячейка в строчке - аналогично, <td rowspan=4>
. Далее еще круче - она занимает в строчку 3 и в столбик 2, записываем <td rowspan=2 colspan=3
. Последняя - <td colspan=3>
.
Переходим ко второй строчке. Но начинаем не с самой левой ячейки - её мы уже упомянули, проходя предыдущую строчку. Но что остается тогда? Да только одна ячейка, все остальные мы "прошли" на предыдущей строке. Эта ячейка занимает 3 в ряд: <td colspan=3>
.
Аналогично дальше.
А вот схема, которая требовалась в вопросе (стиль просто какой-то рандомный, чтобы видно было хотя бы че-то)
table {
border-collapse: collapse;
}
td, th {
border: 2px solid black;
padding: 0.5rem;
text-align: left;
}
<table>
<colgroup width="80"/>
<colgroup width="100"/>
<colgroup width="90"/>
<colgroup width="40"/>
<colgroup width="110"/>
<colgroup width="100"/>
<colgroup width="90"/>
<colgroup width="130"/>
<tr>
<td rowspan=4></td>
<td rowspan=4></td>
<td colspan=3 rowspan=2></td>
<td colspan=3></td>
</tr>
<tr>
<td colspan=3></td>
</tr>
<tr>
<td rowspan=2></td>
<td rowspan=2></td>
<td rowspan=2></td>
<td colspan=2></td>
<td rowspan=2></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan=5></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td rowspan=5></td>
</tr>
<tr>
<td rowspan=2></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan=4></td>
<td></td>
<td></td>
</tr>
</table>
tr
создает горизонтальную строку.
td
разделяет ее на колонки.
colspan=n
объединяет n колонок.
rowspan=m
объединяет m строк.
что считать, какой алгоритм действий нужно соблюдать?
Посчитайте максимальное количество строк в одной колонке - это количество tr
'ов. После этого посчитайте максимальное количество колонок в одной строке. Это будет количество td
'ов, которые нужно поместить в каждый из tr
'ов. Дальше некоторым строкам и колонкам, которые занимают сразу несколько строк или колонок добавляете rowspan
или colspan
соответственно, с числом, равным количеству строк или колонок, которые объединены.
Данный алгоритм вам подойдет в том случае, если вас не особо интересует ширина пустых колонок. Если это важно, то придется либо использовать CSS для стилизации, либо использовать другой алгоритм.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте, есть маленькая машина VPS на DigitalOcean (1lvl, 512 ОЗУ), настроена самостоятельно не опытным сисадмином (я), на ней стоит сайт, посещаемость...