Резиновая верстка в таблицах
Вариант 1
[HTML]<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
</head>
<body style="margin: 0px; padding: 0px;">
<table cellpadding="0" cellspacing="0" border="2" width="100%">
<tr>
<td width="400">logo</td>
<td width="*">table has attribute - width="100%"</td>
</tr>
</table>
</body>
</html>[/HTML]
Вариант 2
[HTML]<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
</head>
<body style="margin: 0px; padding: 0px;">
<table cellpadding="0" cellspacing="0" border="2" width="100%">
<tr>
<td width="400">logo</td>
<td>table has attribute - width="100%"</td>
</tr>
</table>
</body>
</html>[/HTML]
Разница между ними не велика, в первом примере во второй ячейке таблицы стоит параметр WIDTH="*" а во втором примере етого параметра попросту нет. Валидатор Xhtml воспринимает и то и другое правильно. Но все таки как по вашему правильнее сделать когда мы хотим чтобы ячейка тянулась на все оставшееся пространство. Жду мнений с нетерпением!!!!
Спасибо!
Разница между ними не велика, в первом примере во второй ячейке таблицы стоит параметр WIDTH="*" а во втором примере етого параметра попросту нет. Валидатор Xhtml воспринимает и то и другое правильно.
А как и то и другое воспринимает валидатор CSS?
Да и зачем нужно:
если без него работает верно?
Например, если вся таблица 100% на экране, шириной 800px, первый td 200px, второй 50%, третий 300px, четвертый 50%, то второй и четвертый поделят пополам изменяемую часть (800-200-300=)300px и будут по 150px. Для экрана 1024 изменяемая часть будет (1024-200-300=)524px, а значит обе части будут по 50% от 524, то есть по 262px.
Это если подробно.
я как понял имеется ввиду записть типа <td width="100%"> Но - это не есть правильно.
Да и зачем нужно:
если без него работает верно?
а причем тут валидатор CSS я ведь стилей в данном случае не прописывал:)
Ну а раз Валидатор xhtml воспринимает запись width="*" валидной, то по большому разницы нет между писать звездочку или нет, но я вижу в написании оной большой плюс - так чисто визуально в коде сразу легче увидеть и понять, где находится тянущаяся ячейка:)
Ну а раз Валидатор xhtml воспринимает запись width="*" валидной, то по большому разницы нет между писать звездочку или нет, но я вижу в написании оной большой плюс - так чисто визуально в коде сразу легче увидеть и понять, где находится тянущаяся ячейка:)
Значит, проверки на валидность данного CSS не было? :).
секундочку, о какой валидности CSS мы говорим если я привожу XHTML код:)
Причем в данном коде нет ни единой строчечки CSS
Соврал, есть конечно, в боди маргины и паддинги, но это даже не по теме :-)
Например, если вся таблица 100% на экране, шириной 800px, первый td 200px, второй 50%, третий 300px, четвертый 50%, то второй и четвертый поделят пополам изменяемую часть (800-200-300=)300px и будут по 150px. Для экрана 1024 изменяемая часть будет (1024-200-300=)524px, а значит обе части будут по 50% от 524, то есть по 262px.
Это если подробно.
По факту так писать не надо. 100% расчитывается не от свободного пространства, а от общей ширины таблицы. Логика расчета не верна. Кроме того, отображаться будет совершенно не так как Вы описали.
про что и речь, вообще писать 100% можно только в самом <Table> но никак не в ячейках, именно с этим у меня раньше были проблемы, ну а значок * никто не запрещал:)
Как же тогда?
Давайте я сейчас попробую написать такую табличку Это быстро делается.
Возможно, я действительно не прав.
Ну, если относиться так: "Что не запрещено - разрешено", то можно даже так написать -
;)
Давайте я сейчас попробую написать такую табличку Это быстро делается.
Возможно, я действительно не прав.
Указывается ширина таблицы и ширина фиксированной ячейки, вторая ячейка "растекается" на оставшуюся площадь.
Если же делать второй ячейке 100%, то она "подомнет" фиксированную, ужав ее до ширины контента.
Сдаюсь.:)
Если же делать второй ячейке 100%, то она "подомнет" фиксированную, ужав ее до ширины контента.
Вы правы отчасти - такое поведение сильно зависит от DOCTYPE.
;)
а вы пробовали валидировать width="*" и width="ж*па" ,если нет то давайте попробуем проверить:)
Сдаюсь, валидны даже со словом ж-па, хотя оч странно :-( Буду верстать без WIDTH
пока не жаловался )
пока не жаловался )
вот и валидатор WC3 не жалуется, а зря:)
вот вы все ахтунги)))
Действительно, никто не запрещал такие записи как width="*" или width="ж*опа",
просто дело в том, что валидатор проверяет не свойства а синтаксис конструкций. Вот если бы вы написали width=* -- валидатор естестно бы взругался))) А так хоть что пиши :p
Действительно, никто не запрещал такие записи как width="*" или width="ж*опа",
просто дело в том, что валидатор проверяет не свойства а синтаксис конструкций. Вот если бы вы написали width=* -- валидатор естестно бы взругался))) А так хоть что пиши :p
надеюсь те кто разрабатывал валидатор задумаюццо об этой проблеме:)
Действительно, никто не запрещал такие записи как width="*" или width="ж*опа",
Это как это "никто не запрещал"? В стандарте четко прописано, что значение Lenth должно быть либо числом, указывающим ширину в пикселах, либо процентным соотношением. http://www.w3.org/TR/html4/types.html#h-6.6. И в DTD об этом написано:
<!ELEMENT table
...
<!ATTLIST table
%attrs;
summary %Text; #IMPLIED
width %Length; #IMPLIED
<!ENTITY % Length "CDATA">
<!-- nn for pixels or nn% for percentage length -->
Так ведь валидаторы разные бывают. CSE HTML Validator проверяет значения атрибутов и эту ошибку отлавливает -- The "width" attribute has an invalid attribute value "*". Так что "хоть что" лучше на сараях писать.
это я уже понял:) а есть ли где такой валидатор, который проверяет и все сразу?
спасиб огромное, эта штука мне пригодиться:)