Все посты с тегом IE
Internet Explorer и обновления
В последнее время появилось много статей об IE 9. Многие его расхваливают направо и налево. Поддержка новых стандартов, более быстрая обработка javascript, более удобный интерфейс итд. Но многие забывают об одном маленьком нюансе – автообновление браузера. Каким бы прокаченным браузер не был к моменту своего выхода, всеравно через год, полтора он станет устаревшим. Поэтому во всех топовых альтернативных браузерах кроме Safari реализованно автообновление (на маке аудитория более продвинутая, большинство пользователей обновляют систему, да и процент пользователей Safari довольно мал).
Самая удачная реализация получилась у Google, фактически число пользователей предыдущей версии браузера сводится на нет уже через месяц после релиза новой версии. У Microsoft совсем другая картина, старые версии Internet Explorer живут очень долго. Это отрицательно сказывается как на разработчиках, так и на пользователях, но самое важно, это сказывается и на самих мелкомягких. Наверное нет ни одного верстальщика, который бы не сталкивался с проблемами в IE. IE6 и IE7 довольно сильно тормозят на сайтах напичканных javascript'ом, плюс проблемы с безопастностью, поэтому все больше пользователей пересаживаются на альтернативные браузеры. И в итоге у всех складывается мнение что Internet Explorer не лучшее решение для серфинга в сети. Даже выход IE9 многие воспринимают скептически. Соответственно Microsoft постепенно теряет долю в рынке браузеров.
Если бы Microsoft реализовала граммотную систему обновления браузера, проблема не была бы такой глобальной. Windows Update с этими обязанностями как показала практика не справляется. Я все надеялся, что в Microsoft поумнеют и реализуют в IE9 автообновление. Но там видимо решили еще раз наступить на те же грабли.
Из интервью с Джоном Хрватином (IE9 Lead Program Manager):
Q. Планируете ли вы сделать автоматическое обновление браузера (независимое от Windows Update), как это сделано в других браузерах?
A. Windows Update (WU) хорошо справляется с задачей поддержания браузера в актуальном состоянии. Мы используем эту систему для доставки обновлений практически каждый месяц и она дает высокие показатели установок. Мы также используем WU для распространения новых версий, но при этом дополнительно ожидаем подтверждения со стороны пользователя, помимо подтвеждения готовности к обновлению со стороны WU, так что пользователи могут сами решить, когда они готовы перейти к новой версии. Она также интегрируется с ПО, управляющим операционной системой и используемым IT-специалистами для управления тем, как обновления IE разворачиваются в их инфраструктуре. Это особенно критично для организаций, бизнес которых зависит от работоспособности браузера.
Видимо IE9 ждет та же участь, что и IE6 лет через 5.
ie6 и проблемы с :hover

Как всем известно ie6 не поддерживает в полной мере псевдокласс :hover. Для решения этой проблемы есть массивный скрипт под названием Whatever:hover. Суть скрипта такова подключаем 1 раз в стилях и забываем о проблеме. Но как выяснилось не все так гладко, в некоторых случаях (закономерность я так и не уловил) у элементов при наведении в ie6 менялись некоторые стили, хотя :hover для них вообще никак не был прописан. Во всем виноват оказался как раз тот самый Whatever:hover. Так что я не советую использовать данный скрипт для решения проблемы в 6 ослике.
Учим CSS, псевдо-класс first-child
Просматривая работы отечественных верстальщиков заметил, что мало кто использует в css псевдо-класс first-child. Хотя это очень полезная штука, которая может хоть немножко, но облегчить работу программистам и упростить html код. С помощью данного псевдо-класса можно задавать стили для первого дочернего элемента.
Рассмотрим пример. Требуется реализовать подобную навигацию:

Навигация реализуется в виде списка и для каждого элемента меню задается css свойство border-left. Но как видим выше у 1-го элемента не должно быть левого border'а. Первое, что приходит в голову добавить для 1-го элемента класс, но тогда на стороне сервера программисту вместо того чтобы просто сгенерировать меню, придеться искать еще и 1ый элемент и проставлять ему класс. Не будем мучить программиста :) Все легко реализуемо через псевдо-класс first-child.
- ul li:first-child {border: 0;}
Все работает во всех актуальных браузерах, кроме ie6. В нем это легко реализуется с помощью expression.
- *html ul li {border-left-width: expression(this.previousSibling==null?'0':'1px');}
Лишние отступы у кнопок в IE
Кнопки с дефолтными стиля в браузерах смотрятся достаточно не красиво. Поэтому дизайнеры обычно меняют размеры и семейства шрифтом, а также внутренние отступы у кнопок.
Рассмотрим пример:
- <input type="button" style="padding: 3px 10px; font-size: 12px; font-family: Arial;" value="Сохранить?" />
В IE появляются лишние отступы у кнопок:

Исправляется этот баг CSS свойством overflow: visible
- <input type="button" style="padding: 3px 10px; font-size: 12px; font-family: Arial; overflow: visible;" value="Сохранить?" />