Разве IE6 действительно не позволяет мне устанавливать ширину / высоту слева / справа / сверху / снизу? - PullRequest
2 голосов
/ 24 апреля 2010

Создавая сайт очень быстро и работая на всех моих браузерах Mac, я подумал, что мне стоит попробовать старый ноутбук Dell с Windows XP и IE6.

Ничто не выглядит отдаленно правильным. Это потому, что я использовал множество объявлений left / right / top / bottom (ограничение) для определения размера элементов пропорционально размеру их родителя (я не использовал процентные размеры, потому что проценты относятся к размеру родителя до полей и применяются отступы, левые / правые / верхние / нижние относятся к ним после с позицией: абсолютный. Я спрашиваю об этом здесь :)).

В последние несколько недель я много читал о том, насколько ужасен IE6 (и IE) в целом, но по всем причинам, которые люди говорят о его поддержке (большая доля на рынке и страх перед установкой более качественного программного обеспечения), а также потому, что Половина людей в компании, которые мы создаем сайт для использования IE6 (заставляю их медленно, но верно переходить на Chrome), подумала, что если бы я мог просто заставить IE6 отобразить мои ограничения, это могло бы помочь.

Так что я возился с простыми макетами здесь , и они отлично работают в моих последних версиях Firefox, Safari, Chrome и Opera, но IE6 в основном говорит:

Если вы не установили ширину или высоту для меня, я предполагаю, что это ноль .

Но position:absolute; left:0px; right:0px; top:0px; bottom:0px; для контейнера, который width:1000px; height:1000px; должен совпадать с настройкой width:1000px; height:1000px для дочернего элемента, нет?

Если взглянуть на источник для этого , почему IE6 не будет отображать ограничения на основе абсолютно позиционированных AND SIZED элементов? (примечание: я немного поработаю с этим файлом)

Спасибо

Ответы [ 2 ]

2 голосов
/ 24 апреля 2010

Короче говоря, да , это действительно не позволяет этого («абсолютное позиционирование края»); Это хорошо известная и давняя ошибка. Отсутствие width в элементах с абсолютным позиционированием всегда вызывает поведение сжатия к размеру, даже если ширина должна быть выведена слева / справа. То же вертикально.

почему IE6 не будет отображать ограничение на основе абсолютно позиционированных и РАЗМЕРНЫХ элементов?

В данный момент я не вижу этого в примере. В общем, если вы объявляете оба ребра и размером (например, left + right + width), абсолютно позиционированные элементы «чрезмерно ограничены», и одно из правил отбрасывается, чтобы другие соответствовали друг другу.

/ * для таблиц по-прежнему требуется 'cellspacing = "0"' в разметке * /

Неа. Сочетание border-collapse: collapse; border-spacing: 0; плюс padding: 0 в ячейках делает cellspacing / cellpadding ненужным (слава богу).

ясно: как; / * ie6 требуется для абсолютно позиционированных элементов! * /

???

нет.

1 голос
/ 24 апреля 2010

IE6 - это «самый старый» браузер, который все еще широко распространены среди веб-разработчиков ... неохотно. Отчасти неохотно, потому что его поддержка стандартного рендеринга CSS довольно нечеткая. Стандарты говорят, что нужно делать одно, а достаточно часто движок IE6 делает другое, или какая-то ошибка приводит в заблуждение. Имейте в виду, что несколько лет назад IE6 был довольно неплох, по крайней мере, по сравнению с Netscape и другими крупными игроками дня. Уже нет. Люди не обновились.

ЕСЛИ IE6 (и, по большей части, IE7) - это браузеры, которые вам необходимо поддерживать, как правило, лучше помнить об этом с момента начала работы с CSS. Учитывая, что вы уже немного преодолели этот момент, я бы порекомендовал вам рассмотреть ряд способов выбора стилей для IE и, в частности, для IE6 + IE7. Наиболее распространенный и мощный метод, и, вероятно, тот, который вам нужен сейчас, - это « условные комментарии », которые позволяют вам ссылаться в таблицах стилей, которые будут читать только определенные версии IE. Как только вы получите это за пояс, вам, вероятно, нужно будет познакомиться с некоторыми из причуд IE6, например, понятие «имеющий макет» .

Я также рекомендую загрузить средство виртуализации и образы VPC , предоставленные для обратно-совместимого тестирования Microsoft. Это позволит вам запускать экземпляр Windows с IE6 или IE7 на вашем Mac, при условии, что он является более новым вариантом на базе Intel. Погуглив «VirtualBox VPC images mac», вы получите хороший список учебников по настройке. Это не сложно, но требует места на жестком диске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...