Никогда не пишите по спецификациям...
Вывесил вчера в ночь очередной ГС, так как пишу в Курице С Ведром "Хроме", а для страха проверяю всё в ИЕ, лёг спать с чистой совестью, убедившись, что там и там работает... лишь днём случайно обнаружил, к своему ужасу, что в "Опере" и "Файрфоксе" текст не переносится внутри ячейки таблицы <TD> и разъезжается примерно на 3000 пикселов в ширину, и в итоге выглядит это примерно так (GIFка, качество снижено):
Глюк с разъезжающимся текстом в Opera и Firefox
Анализ DOM и иерархии стилей дал лишь дикую модель с браузеро-зависимыми свойствами на верхнем уровне, хаотическая "корректировка" CSS, как обычно, лишь ухудшила общую картину, а помогло, тоже как обычно, вдумчивое медитирование в компании с бутылкой вина на тему глобальных ошибок в мироздании шаблоне сайта.
Оказалось, в основном титуле сайта стояло хбз откуда содранное честно написанное
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML lang=ru-ru xml:lang="ru-ru" xmlns="http://www.w3.org/1999/xhtml">
а замена его на "неправильное"
<HTML>
немедленно срулила и привела шаблон в порядок :)
Совсем без спецификации возникла другая проблема - перестала работать JCarousel в Internet Explorer - просто выводила все картинки подряд одной лентой... ошибок при этом - никаких.
Наконец остановился на
<!--[if IE]> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <![endif]-->
(код писать одной строкой) - и всё как бы заработало... просто теперь текст "разъезжался" в ИЕ, раз я отключил для него режим совместимости :) В итоге, поскольку все "разъезжающиеся" страницы передавались параметром с именем $p
, код стал выглядеть так:
if (empty($p)) { echo '<!--[if IE]> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <![endif]-->'; }
- то есть, если страница не статическая, подключить директиву для IE и нормального отображения "карусельки" в нём...
Вывод - больше пейте и не верьте документации :) Ну или когда появится время - привести статические страницы в нормальный вид.
P.S. Ну а на самом деле всё оказалось ещё проще - в код вкрался атрибут nowrap
на ячейку таблицы с контентом. Вот текст и растягивался в ряде браузеров, слишком буквально понимающих код :)
17.12.2011, 23:54 [10510 просмотров]