Вёрстка « Background для ul глючит в IE

Подскажите почему в http://snabagrostroy.ru навигация в IE получается на белом фоне, пожалуйста.

1 ответов


Ну, во-первых, в IE8 всё нормально.

А используя inline-block, первым делом следует помнить, что он не поддерживается в IE6-7, но эти браузеры отображают inline элементы так же, как inline-block, при условии включения hasLayout:


.menu-item {
    display: inline-block
    }
    .ie6 .menu-item,
    .ie7 .menu-item {
        display: inline;
        zoom: 1
        }
 

Ну, или если через задницу, то


* html .menu-item {
    display: inline;
    zoom: 1
    }
*+html .menu-item {
    display: inline;
    zoom: 1
    }
 

zoom как раз и является одним из триггеров, включающих hasLayout, - самый безобидный из них.

Потому что свойство gradient в нем не работает. Три варианта решения вашей проблемы:

Для IE есть свойство filter. В вашем случае вот готовый код, просто вставьте.


filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#111155', endColorstr='#000475',GradientType=0 );
 

Простым и не элегантным решением будет вставить картинку в качестве бэкграунда. Вот это будет работать для вас.

background-image: url("http://i27.fastpic.ru/big/2011/1127/c5/5e6cbfe3f6d08d6c988c83b4a038dac5.jpg");
background-repeat: repeat-x;
 
Но вариант с картинкой — запасной вариант. Так, на всякий случай.

Если первый вариант не сработал, то куда проще же просто отказаться от градиента в эксплорере:

background: #111155;