Добрый вечер, друзья! Internet Explorer - это та преграда, на который спотыкаются многие разработчики. Вы можете потратить много времени, но в результате получите кривое отображение в данном браузере, и все ваши разработки падут прахом. Казалось бы, что данный браузер и использовать никто не будет, однако существует много пользователей, которые активно его юзают. Поэтому наша задача - разобрать все эти IE-баги и найти пути и решения.

Центрирование
Центрирование элементов страницы - это один из часто встречаемых возможностей на страницах. Центрирование использует повсюду: выравние блоков, изображений, слоёв. Самым из простых способов создания центрирования является добавление следующий строки:
margin:auto;
Данный метод применим ко многие элементам и не зависит от ширины или браузера. Но вот старый добрый IE не попадает под этот разряд.




Устранение бага в IE
Самая простая методика решения данного бага в Internet Explorer - прописывание text-align: center "родительскому" контейнеру (в нашем случае "родительский" - поле серого цвета) и применение text-align: left для элемента, который подлежит центральному выравниванию.
#container{
border: solid 1px #000;
background: #777;
width: 400px;
height: 160px;
margin: 30px 0 0 30px;
text-align: center;
}
#element{
background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 100px;
margin: 30px 0;
text-align: left;
}
Эффект лестницы
Каждый кодер при создании пользуется списками для создания навигации. Для этого мы создаём список, а в контейнер тега LI вставляем ссылки, а после всё это позиционируем. Но вот IE этого не воспринимает, эму другое блюдо подавай (: Например:
HTML:
<ul>
<li><a href="#">анкор</a></li>
<li><a href="#">анкор</a></li>
<li><a href="#">анкор</a></li>
</ul>
CSS:
ul {
list-style: none;
}
ul li a {
display: block;
width: 130px;
height: 30px;
text-align: center;
color: #fff;
float: left;
background: #95CFEF;
border: solid 1px #36F;
margin: 30px 5px;
}
В идеале должны получить:


Но в IE:


Первый способ устранения бага
Для этого мы добавляем плавающее позиционирование самому тегу LI:
ul li {
float: left;
}
Второй способ устранения бага
Для этого прописываем display: inline. В добавок к этому, данный способ исправляет ещё и ошибку с краями, описанную ниже.
ul li {
display: inline;
}
Двойной отступ в плавающих элементах
С этой ошибкой я сам встречаюсь очень часто. Смысл её состоит в том, что при позиционировании плавающих элементов добавляется двойной отступ.
CSS:
#block{
background: #95CFEF;
width: 300px;
height: 100px;
float: left;
margin: 30px 0 0 30px;
}




Устранение бага в IE:
Для этого добавляем display: inline в CSS
#block{
background: #95CFEF;
width: 300px;
height: 100px;
float: left;
margin: 30px 0 0 30px;
display: inline;
}
Элементы с маленькой высотой
Ссысл состоит в том, что при создании элемента с маленькой высотой (например, в 2 пикселя) мы получим блок с большей высотой.
CSS:
#block{
background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 2px;
margin: 30px 0;
}




Первый способ устранение бага:
Причина этой ошибки довольно проста: IE просто отказывается изменить высоту элемента, меньшего чем размер шрифта. Для этого нужно изменить размер шрифта на 0.
#block{
background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 2px;
margin: 30px 0;
font-size: 0;
}
Второй способ устранение бага:
Следующий более лучший путь решения состоит в том, чтобы скрыть лишнее, прописав overflow: hidden
#block{
background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 2px;
margin: 30px 0;
overflow: hidden;
}
Оставшиеся баги разберём в следующем посте.
Источник:
Постовой
Нет на блоге посетителей? Вы еще не знаете, что такое SEO оптимизация? Пора изучать продвижение блога и занимать высокие позиции в поисковых системах.
Комментарии:
Добавил: ie6 - ie7 давить (30-Aug 2011 12:14:40)
поверстаете - и на http://smsta.ru |
Добавил: Здоровье (25-Apr 2011 19:19:23)
http://tiens.wallst.ru/ - Сайт твоего здоровья |
Добавил: Джен (07-May 2010 13:52:04)
я первый раз верстаю, мало наглядного материала для чайников по багам. Отличная статья. Спасибо огромнейшее!!!! |
Добавил: Лекси (15-Feb 2010 15:41:11)
Вы не представляете, как мне помогли =) Работаю верстальщиком не так давно и ещё не все глюки браузеров выучила, особенно ИЕ. Спасибо! Селькин Виталий: |

Рубрика:
Просмотров: 4672
Дата: 22.11.09

2.03.10
3.02.10
12.01.10
28.11.09
22.11.09
22.10.09
27.09.09
18.09.09
18.08.09
6.08.09