Проблемы
с таблицами в старых версиях Navigator
А
сейчас пора вплотную заняться Navigator.
Вы
уже заметили, что старые версии этой программы отличаются весьма странным поведением.
Мало того, что они зачастую некорректно отображают даже абсолютно правильный
с точки зрения стандартов HTML-код, так еще и содержат множество ошибок, с некоторыми
из них вы уже познакомились и научились их обходить. Сейчас мы продолжим разговор
о нескопчаемой войне Navigator и Web-дизайнеров, первыми жертвами которой становятся
таблицы.
Примечание
Новые версии
Navigator (6.0 и 7.0) выводят все Web-страницы корректно. Так что к ним это
не относится. Все, что сказано ниже, относится только к старым версиям Navigator,
а именно популярным до сих пор многочисленным версиям 4.7*.
Итак,
какие сюрпризы продолжают преподносить нам старые версии Navigator?
Сюрприз
первый. Когда мы говорили, что некоторые Web-обозреватели некорректно отображают
ячейки таблиц, не содержащие данных, мы имели в виду и Navigator, и Internet
Explorer. Но если Internet Explorer просто отображает такую ячейку без рамки,
то Navigator может изуродовать таблицу так, что сам удивится. В качестве решения
этой проблемы мы рекомендовали поместить в ячейку, которая должна оставаться
пустой, символ неразрывного пробела snbsp;. Сам Dreamweaver делает так, когда
помещает на Web-страницу пустую таблицу. Однако в случае с Navigator это не
поможет — ячейка все равно будет отображена некорректно. Радикальный способ
вразумить строптивую программу - "однопиксельный GIF", с которым вы
уже знакомы.
Сюрприз
второй. И более серьезный.
Когда
вы задаете абсолютное значение ширины для ячейки, Internet Explorer и Navigator
ведут себя по-разному. Internet Explorer принимает заданную Web-дизайнером ширину
как руководство к действию и пытается ее соблюдать. Само собой, если содержимое
такой ячейки никак не будет в нее помещаться (например, если вы включили параметр
No
Wrap, в результате чего Web-обозреватель не сможет разбить длинную
строку текста на более короткие), Internet Explorer все-таки изменит ее ширину.
Но это крайний случай — в остальных случаях Internet Explorer весьма послушен.
Navigator
в таком случае ведет себя гораздо строптивее. Установленную Web-дизайнером ширину
ячеек он принимает как рекомендации, следовать которым абсолютно не обязательно.
Реальная ширина ячейки вычисляется им самим, исходя из размеров таблицы и ее
остальных ячеек, и практически всегда не равна тому, что вы задали. Заложенный
разработчиками беспокойный дух творчества не дает ему покоя.
Но
что делать, если вы хотите, чтобы ячейки таблицы во что бы то ни стало имели
нужную ширину? Есть решение, правда, довольно экстравагантное. Используется
все тот же "однопиксельный GIF", из которого создается своеобразная
"распорка", мешающая ячейке "сплющиться". При этом атрибут
WIDTH тега <td> (как вы помните, он задает ширину ячейки) не используется
вообще, а ширина ячейки задается аналогичным атрибутом тега <IMG>.
Это
лучше изучить на примере. Давайте рассмотрим небольшой фрагмент кода таблицы:
<TABLE>
<TR>
<TD
WIDТН="50">Ячейка 1</TD>
<TD
WIDТН="100">Ячейка 2</TD>
<TD
WIDТН="200">Ячейка 3</TD>
</TR>
</TABLE>
Перед
вами код простейшей таблицы. Вы можете поместить его в файл, сохранить на диске
и поочередно открыть в Internet Explorer и Navigator. Первый отобразит ее нормально,
а второй, по своему обыкновению, будет своевольничать. Ну ничего, сейчас мы
отобьем его охоту к экспериментам...
Посмотрите
на этот код:
<TABLE>
<TR> <TD>
<IMG
SRC="lxl.gif" HEIGHT="1" WIDTH="50"> <BR>
Ячейка
1 </TD> <TD>
<IMG
SRC="lxl.gif" HEIGHT="1" WIDTH="100"> <BR>
Ячейка
2 </TD> <TD>
<IMG
SRC="lxl.gif" HEIGHT="1" WIDTH="200"> <BR>
Ячейка 3 </TD> </TR> </TABLE>
Все
очень просто! Мы поместили в каждую ячейку "однопиксельный GIF" и
задали его ширину с помощью атрибута WIDTH тега <IMG>. Разумеется, ячейка
таблицы растянется так, чтобы его вместить. Высоту "однопиксельного GIF"
(атрибут HEIGHT тега <IMG>) мы задали в один пиксел, чтобы он не влиял
на содержимое ячеек. В свою очередь, чтобы содержимое ячейки не повлияло на
ширину "однопиксельного GIF", мы отделили их друг от друга тегом разрыва
строки <BR>.
Можете
проверить — все это работает!
Вообще,
Navigator 4.7* славится своими странностями. Большинство из них, конечно же,
давно выявлено и документировано. Если вы хотите узнать о них и научиться их
обходить, посетите соответствующие Web-сайты или пообщайтесь с опытными Web-дизайнерами.
Конечно,
Internet Explorer также имеет свои странности и ошибки. Но их значительно меньше,
чем у Navigator, и затрагивают они, в основном, систему безопасности. Не зря
же компания Microsoft при разработке Internet Explorer 6.0 во главу угла поставила
именно защиту данных. И недаром Internet Explorer, согласно данным статистики,
используют 95% пользователей Интернета.
Назад Содержание Вперед