2014-12-06 5 views
0

У меня проблема с моим сайтом, логотип Yellow Butterfly не отображается в Internet Explorer, а работает в Chrome и других браузерах.Internet Explorer не отображает изображение

Я даже не знаю, где проблема, поэтому я ничего не мог найти.

Если вам нужна дополнительная информация, скажите мне; вот Website (чтобы открыть проблему с).

#logo 
{ 
    z-index:2333; 
    position:absolute; 
    width:70px; 
    height:70px; 
    margin-left:-375px; 
    margin-top:-24px; 
} 

Извините за мой плохой английский, это не мой родной язык.

+0

Вы должны исправить свои контейнеры, чтобы больше не требовать абсолютного позиционирования. Попробуйте 'float: left' для логотипа и основного заголовка и поместите логотип в свой' # oberdiv'. –

+0

Пожалуйста, не помещайте '[tags]' в заголовок вашего вопроса и не беспокойтесь о своем «плохом английском», если мы сможем понять ваш вопрос, мы постараемся помочь. Но, что важно, какие версии IE? –

+0

У вас также есть недопустимый HTML-код, который даст вам всевозможные проблемы с Internet Explorer. См. Http://validator.w3.org/check?uri=http%3A%2F%2Fwww.zitronenfalter-spa.at&charset=%28detect+automatically%29&doctype=Inline&group=0 – Sparky

ответ

0

Ваше позиционирование беспорядок. Вы указываете логотип absolute, но не указываете ни одно из свойств позиционирования (слева/сверху/справа/снизу) - это делает результирующее положение вашего изображения неопределенным стандартами CSS. Chrome/Firefox по умолчанию - left:50%, в этом случае IE - left:0.

Сделайте это явным путем, добавив left:50% в ваше правило CSS для #logo, и изображение снова появится в IE.

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

3

Эта проблема представляет собой размещение по умолчанию абсолютно позиционированного элемента внутри элемента с использованием атрибута align, такого как <div align='center'>...</div>. Chrome позволяет атрибуту align центрировать абсолютно позиционированный элемент, где Internet Explorer 11 этого не делает.

После проверки в процессе развития версии Internet Explorer с помощью http://remote.modern.ie, он появится в будущих версиях Internet Explorer будет обрабатывать это таким же образом, Chrome делает, что делает следующее решение соответствующей только для обратной совместимости.

Примените следующие изменения для решения этой проблемы:

div#wrapper { 
    width: 768px; 
    margin: 0 auto; 
} 

Устанавливая width: 768px на #wrapper и margin: 0 auto мы берем лучший подход к центрированию макета, а также позиционирование aboslutely позиционирования детям.

#logo { 
    /* margin-left: -375 */ 
} 

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

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

#logo { 
    left: 0; 
    top: 187px; 
} 

Вот переключающий резюме от F12 Developer Tools Internet Explorer, которые показывают диф:

Internet Explorer Changes

+0

Это лучший * подход * для уверенности , но из того, что я видел, это нарушит большую часть его сайта. Прямо сейчас добавление «left: 50%» в логотип является единственным жизнеспособным решением, пока не будет исправлено остальное. –

+0

@NielsKeurentjes Что это значит? – Sampson

+0

Он использует полный подход к хитам и промахам с глобальным центрированием, а затем добавляет множество случайных правил 'position: relative' и' position: absolute' для элементов, которые не соответствуют потоку. Это неизбежно нарушит контексты позиционирования в нескольких местах. Он может просто работать, хотя с этими небольшими исправлениями, но это больше удачи, чем что-либо еще с его стороны. Не поймите меня неправильно, я все для его фундаментальной фиксации, но есть намного больше, чем просто 'div # header'. –

Смежные вопросы