firefox косячит таблицы на 5 пикс. или куда катится w3c?

12
skat
На сайте с 02.08.2005
Offline
104
983

вот блин загадка произошла: у меня таблица, в которой ячейка заливается гифом. в коде указана высота ячейки равная высоте гифа. при просмотре страницка в опере и осле все гут, но фаерфокс без видимых причин увеличивает все таблицы по высоте на 5 пикселей, от чего гифы дублируются и вся дизайнерская задумка косячится. понятия не имею почуму так, но вот что заметил - если в начале страницы убрать доктайп:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//RU" "http://www.w3.org/TR/html4/loose.dtd">

то все становится нормально, 5 пикселей исчезают... хрен его знает почему так.

вот еще что мне совершенно непонятно: в спецификации html 4.01 background (как и high и width и еще много) определен как не рекомендованный элемент, от которого в будущем w3c будет избавляться, дабы стимулировать листы стилей. Получается что не разработав достойной альтернативы в CSS, уже сейчас пытаются ущемить полезные фишки (при помощи которых в основном дизайн делается красивый) Что получается? - валидаторы косячат красивые сайты и пропускают отстой в стиле "голый текст+три заголовка, зато на CSS"

ну да ладно, это их проблемы, что мне с фаерфоксом делать? может кто нибудь сталкивался? хэлп плиз!

Saturnus
ronald
На сайте с 17.11.2005
Offline
147
#1

Попробуйте такой вариант доктайпа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

ТВЭЛ
На сайте с 29.09.2006
Offline
111
#2

table {border-collapse: collapse;}
Время не ждёт.
skat
На сайте с 02.08.2005
Offline
104
#3

to Ronald: мне надо именно чтобы работало на 4.01 transitional. попробовал подставить вашу надпись, заработало, но такое ощущение, что заработало потому что ваша надпись просто проигнорировалась (т.е. FF "подумал" что ничего нет), а не потому что она валидная...

to ТВЭЛ: у меня вот так:

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"..........

это одно и то же? или если вынести стиль в .css все решится?

почему вообще увеличивается высота таблицы, ведь четко прописана высота такая то, FF игнорирует high="N";?

получается что осел и опера подстраивается под ошибки, а FF не хочет?

как лечить?

ТВЭЛ
На сайте с 29.09.2006
Offline
111
#4

skat, пока не видим весь css и код ничего сказать нельзя. Объявление стиля внутри тега совершенно равнозначно вынесению в CSS в данном случае, лишь более специфично.

Kolyaj
На сайте с 28.03.2006
Offline
69
#5

skat, вы уже в двух сообщениях вместо свойства height пишете high, может в этом проблема? И не забывайте единицы измерения писать, т.е. height="30px";

Николай В.
На сайте с 07.09.2006
Offline
62
#6

дайте посмотреть, что ли?

skat
На сайте с 02.08.2005
Offline
104
#7

вот такой вот код у меня...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//RU" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>New Page 1</title>

</head>

<body>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="960" id="AutoNumber7" background="../images/common/gr148.gif">

<tr>

<td height="148" width="231">

<img border="0" src="../images/common/topl.jpg" width="231" height="148"></td>

<td height="148">

&nbsp;</td>

<td height="148" width="248">

<img border="0" src="../images/common/topr.jpg" width="248" height="148"></td>

</tr>

</table>

</body>

</html>

объявление высоты в самой таблице ничего не дает, указание, что высота в пикселях ничего не дает. бился бился.... а вот если удалить верхнюю надпись - все нормально. шайтанизм какой то.

чтобы ни делал таблица выводится на экране ровно на 5 пикс. больше по высоте, если указывается транзишнл 4.01

NB
На сайте с 14.09.2004
Offline
95
#8

skat, если хотите добиться желаемого Вами результата -- убирайте <!DOCTYPE>, либо оставляйте его в сокращенном варианте, как предлагал ronald. По другому -- никак.

<img> -- это строчный элемент, ergo, любое изображение должно располагаться по базовой линии текста. В режиме "совместимости" (без DOCTYPE) изображения <img>, при отсутствии обрамляющего текста, умели вписываться в ячейку таблицы. Нынче, если указан DOCTYPE, то даже при отсутствии обрамляющего текста изображение будет выравниваться по базовой линии текста. Которая не совпадает с нижней границей текста, а отстоит от нее (для тех шрифтов, которые использовал топикстартер) на те самые 5px.

Об этом, и о других "косяках", см. здесь: http://www.artlebedev.ru/tools/technogrette/html/doctype2/

Николай В.
На сайте с 07.09.2006
Offline
62
#9

все просто - сделайте картинки блочными элементами


<style>
img {
display: block;
}
</style>
NB
На сайте с 14.09.2004
Offline
95
#10

Николай В., ага, я тоже хотел это предложить. Только лучше, наверное, указать это стилями непосредственно в теге <img ... style="display:block"> (мало ли, как другие изображения надо будет выводить). Можно еще бэкграундом заливать (стилями в ячейках таблицы): <td ... style="background-image:...">

Хотя я бы вообще сверстал по-другому, без таблиц.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий