Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

IE9 и таблицы

IE9 и таблица (18.31КиБ)

В продукте, которым я занимаюсь, минимальная версия Эксплорера, которую я решил поддерживать — девятая. В будущем я хочу поднять это требование до десятой, а пока приходится жить с тем, что есть — клиенты не готовы к резким переменам и я их понимаю.

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

Дело оказалось в пробелах между ячейками — верстальщик отформатировал шаблон, чтобы он лучше читался, и все браузеры всё показали правильно, один девятый Эксплорер сошёл с ума. Лечится проблема запросто — либо убираем форматирование в шаблоне, либо убираем его прямо в браузере.

Я выбрал второй путь. Пусть лучше шаблон выглядит читаемо, а костыль для девятого Эксплорера всегда можно будет убрать лёгким движением руки. Выглядит он вот так, кстати (используется jQuery, само собой):

$("table tr").contents().filter(function() {
    return this.nodeType == 3;
}).remove();
16 комментариев
BOLVERIN 2014

Инторнет експлоерер. традиции сквозь века

Владимир Родкин 2014

А что, если пользователю отдавать неформатированный HTML? Вроде того, как минифицируют JS и CSS?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Владимир Родкин:

На это вычислительные ресурсы всё-таки уходят. Да и логику нужно программировать — где-то можно убирать пробелы, где-то нельзя.

gruzzilkin.com 2014

Еще можно указать таблице шрифт нулевого размера и восстановить нормальный шрифт в нужных местах.

Евгений Степанищев (bolknote.ru) 2014

Комментарий для http://gruzzilkin.com:

Спасибо!

jankkhvej 2014

Комментарий для Евгения Степанищева:

клиенты не готовы к резким переменам и я их понимаю.

IE9 работает только на Windows выше XP, и там он автоматически заменяется на IE10, и так далее. IE9 может остаться только если специально выключены автоматические обновления, которые по умолчанию включены в версиях Windows выше XP.
Пожалуйста, объясните, какой смысл это «понимать»?
Что именно вам понятно — вы имеете в виду корпоративную политику, отключившую обновления, или что-то другое?

Владимир Родкин 2014

Комментарий для jankkhvej:

Видимо под клиентами подразумеваются заказчики, а не посетители ресурса.
А заказчики делают выводы о поддержке исходя из статистики посещений. Собственно заказчика понять можно, посетителя нет.

Если копать глубже, то посетитель чаще всего — офисный работник. И ему приходится пользоваться старым ИЕ, так как политика безопасности компании по какой-то причине исключает обновления.

Евгений Степанищев (bolknote.ru) 2014

Комментарий для jankkhvej:

IE10 работает на Windows 7 и выше: https://en.wikipedia.org/wiki/Internet_Explorer_10

Чтобы система получила обновления, должен быть интернет и это должно быть разрешено политиками, т. е. все обновления должны быть тщательно протестированы.

jankkhvej 2014

То есть исключительно корпоративная политика?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для jankkhvej:

Я же написал всё:
1) IE10 работает на Windows 7+, бывают ещё XP и Vista
2) там, где ОС позволяет обновиться, часто бывает, что этого сделать нельзя — так как неясно, будет ли работать какой-то корпоративный софт на обновлённой ОС.

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Владимир Родкин:

Видимо под клиентами подразумеваются заказчики, а не посетители ресурса.

У меня нет посетителей ресурса. Я сайты не делают.

jankkhvej 2014

Комментарий для Евгения Степанищева:

Понятно, спасибо! Я всё время ищу какую-то иную причину, почему Windows не обновляют, но тут всё честно — никаких выдуманных причин.

Виктор 2014

Евгений, а почему в данном случае вы написали «jQuery»?

заполните это поле 2014

Присоединяюсь к вопросу Виктора :)

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Виктор:

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

Виктор Корейша 2014

А еще можно ставить в шаблоне HTML комментарии. Читаемости это не ухудшает, зато где надо пробелы убирает.