IE9 и таблицы
В продукте, которым я занимаюсь, минимальная версия Эксплорера, которую я решил поддерживать — девятая. В будущем я хочу поднять это требование до десятой, а пока приходится жить с тем, что есть — клиенты не готовы к резким переменам и я их понимаю.
Наткнулись на странную проблему в этой версии Эксплорера — некоторые таблицы выглядят как на снимке выше — ячейки в строках иногда выпирают вправо безо всякой видимой причины.
Дело оказалось в пробелах между ячейками — верстальщик отформатировал шаблон, чтобы он лучше читался, и все браузеры всё показали правильно, один девятый Эксплорер сошёл с ума. Лечится проблема запросто — либо убираем форматирование в шаблоне, либо убираем его прямо в браузере.
Я выбрал второй путь. Пусть лучше шаблон выглядит читаемо, а костыль для девятого Эксплорера всегда можно будет убрать лёгким движением руки. Выглядит он вот так, кстати (используется jQuery, само собой):
$("table tr").contents().filter(function() {
return this.nodeType == 3;
}).remove();
Инторнет експлоерер. традиции сквозь века
А что, если пользователю отдавать неформатированный HTML? Вроде того, как минифицируют JS и CSS?
Комментарий для Владимир Родкин:
На это вычислительные ресурсы всё-таки уходят. Да и логику нужно программировать — где-то можно убирать пробелы, где-то нельзя.
Еще можно указать таблице шрифт нулевого размера и восстановить нормальный шрифт в нужных местах.
Комментарий для http://gruzzilkin.com:
Спасибо!
Комментарий для Евгения Степанищева:
IE9 работает только на Windows выше XP, и там он автоматически заменяется на IE10, и так далее. IE9 может остаться только если специально выключены автоматические обновления, которые по умолчанию включены в версиях Windows выше XP.
Пожалуйста, объясните, какой смысл это «понимать»?
Что именно вам понятно — вы имеете в виду корпоративную политику, отключившую обновления, или что-то другое?
Комментарий для jankkhvej:
Видимо под клиентами подразумеваются заказчики, а не посетители ресурса.
А заказчики делают выводы о поддержке исходя из статистики посещений. Собственно заказчика понять можно, посетителя нет.
Если копать глубже, то посетитель чаще всего — офисный работник. И ему приходится пользоваться старым ИЕ, так как политика безопасности компании по какой-то причине исключает обновления.
Комментарий для jankkhvej:
IE10 работает на Windows 7 и выше: https://en.wikipedia.org/wiki/Internet_Explorer_10
Чтобы система получила обновления, должен быть интернет и это должно быть разрешено политиками, т. е. все обновления должны быть тщательно протестированы.
То есть исключительно корпоративная политика?
Комментарий для jankkhvej:
Я же написал всё:
1) IE10 работает на Windows 7+, бывают ещё XP и Vista
2) там, где ОС позволяет обновиться, часто бывает, что этого сделать нельзя — так как неясно, будет ли работать какой-то корпоративный софт на обновлённой ОС.
Комментарий для Владимир Родкин:
У меня нет посетителей ресурса. Я сайты не делают.
Комментарий для Евгения Степанищева:
Понятно, спасибо! Я всё время ищу какую-то иную причину, почему Windows не обновляют, но тут всё честно — никаких выдуманных причин.
Евгений, а почему в данном случае вы написали «jQuery»?
Присоединяюсь к вопросу Виктора :)
Комментарий для Виктор:
Я руководствуюсь принципом, который синтезировался когда-то в споре с Пепелсбеем где-то в комментариях (лень искать): людей к транслитерированным названиям надо приучать постепенно.
А еще можно ставить в шаблоне HTML комментарии. Читаемости это не ухудшает, зато где надо пробелы убирает.