Недавно решил заняться дизайном и столкнулся с интересной особенностью присвоения классов:
Для начала посмотрим таблицу на главной странице:
<table cellspacing="0" summary="Список форумов в категории: Информационный раздел">
<thead>
<tr>
<th class="tcl" scope="col">Форум</th>
<th class="tc2" scope="col">Тем</th>
<th class="tc3" scope="col">Сообщений</th>
<th class="tcr" scope="col">Последнее сообщение</th>
</tr>
</thead>
<tbody class="hasicon">
<tr id="forum_f1" class="alt1">
<td class="tcl">
<div class="intd">
<div class="icon"><!-- --></div>
<div class="tclcon"><h3><a href="http://forum.mybb.ru/viewforum.php?id=1">Информация сервиса</a></h3>Этот форум предназначен для извещения пользователей о всех изменениях, нововведениях в сервисе, а так же и на этом форуме.</div>
</div>
</td>
<td class="tc2">50</td>
<td class="tc3">5903</td>
<td class="tcr"><a href="http://forum.mybb.ru/viewtopic.php?id=22588&p=27#p826950">17 марта 2010г.: Отключение рекламы и Фонд форума</a><br>Вчера 06:02:20 - electro</td>
</tr>
</tbody>
</table>
В данном случае все понятно и хорошо с классами: tcl, tc2, tc3, tcr - всё логично..А теперь возьмем таблицу с Активными:
<table cellspacing="0">
<thead>
<tr><th class="tcl" style="width:25%" scope="col">Имя</th>
<th class="tcl" style="width:25%" scope="col">Последнее действие</th>
<th class="tc3" scope="col">Время</th>
</tr></thead>
<tbody>
<tr>
<td class="tcl"><a href="http://forum.mybb.ru/profile.php?id=23723">kolobdur74</a></td>
<td class="tcl" style="width:25%"><a href="http://forum.mybb.ru/online.php">Смотрит список активных пользователей</a></td>
<td class="tc3">Сегодня 20:47:52</td>
</tr>
</tbody>
</table>
А здесь уже не все хорошо, а уже грустно: Две ячейки с одинаковым классом: tcl (это вместо того, чтобы вторая была с классом: tc2 - по логике однако), и последняя ячейка идет с классом не с tcr как по логике должно быть, а с tc3..То есть уже дизайн таблиц общим не сделаешь - какой прок от таких классов, если они ведут себя как ИД, уж лучше было бы ИД в таком случае...Но и это еще не грустно, гораздо грустнее ситуация с Участниками:
<table cellspacing="0" summary="Пользователи, отфильтрованные по критерию.">
<thead>
<tr>
<th class="tcl" scope="col">Имя</th>
<th class="tc2" scope="col">Статус</th>
<th class="tc3" scope="col">Уважение</th>
<th class="tc3" scope="col">Сообщений</th>
<th class="tc3" scope="col">Зарегистрирован</th>
<th class="tc3" scope="col">Был</th>
</tr>
</thead>
<tbody>
<tr class="altstyle">
<td class="tcl"><span class="usersname"><a href="http://forum.mybb.ru/profile.php?id=31982">morganchees</a></span></td>
<td class="tc2">Стремящийся</td>
<td class="tc3">+1</td>
<td class="tc3">13</td>
<td class="tc3">Вс, 22 Дек 2013</td>
<td class="tc3">Сегодня</td>
</tr>
</tbody>
</table>
И на фига, спрашивается, козе баян? Четыре с классом: tc3, и опять таки в конце нет tcr, хоть tcl не два...Вот и спрашивается - на фига такая структура, если при минимальной правке стиля нужно применять костыль в виде скрипта? К примеру, в последнем случае я не знаю как можно без использования скрипта сделать закругление бордюра в верхнем правом углу только у последней ячейки, а не у всех четырех с классом tc3...Это выходит, что нормальный (под нормальным имею ввиду, что не только прямоугольники с одинаковыми цветами) легкий стиль в принципе невозможен на такой структуре..
Ну, если вы думаете, что на этом всё, то заблуждаетесь - идем в Сообщения:
<table cellspacing="0">
<thead>
<tr>
<th class="tcl pmtcl1" scope="col">Тема</th>
<th class="tc2 pmtc22" scope="col">Отправитель</th>
<th class="tc3 pmtc33" scope="col">Дата</th>
<th class="tc2 pmtc24" scope="col"><input type="checkbox" id="checker" title="Выделить все" onclick="checkAll(document.getElementsByName('multi_delete[]'), this.checked)"></th>
</tr>
</thead>
<tbody class="hasicon">
<tr>
<td class="tcl pmtcl1">
<div class="intd">
<div class="icon"><!-- --></div>
<div class="tclcon"><a href="http://forum.mybb.ru/messages.php?box=0&p=1&id=341845">RE(2): Privet.</a></div>
</div>
</td>
<td class="tc2 pmtc22"><a href="http://forum.mybb.ru/profile.php?id=6908">Je Ane</a></td>
<td class="tc3 pmtc33">Вчера</td>
<td class="tc2 pmtc24"><input type="checkbox" name="multi_delete[]" value="341845"></td>
</tr>
</tbody>
</table>
Правда симпатишно: tcl, tc2, tc3, tc2? На конце видим опять таки не логичный: tcr, а совсем алогичный: tc2..И выходит, что короткий красивый код под все уровни для таблицы фиг сделаешь - попробуешь сделать, и где нибудь будет обязательно криво...
И в связи со всем выше сказанным, у меня вопрос к Администратору сервиса: Возможно ли поправить шаблон, чтобы в любой таблице tcl - был всегда слева, tcr - всегда справа, и чтобы в одной строке их не было по десять штук, а только слева и справа? В принципе я так понимаю, что изначально так и задумывалось, но почему от этого отказались?