Windows Phone IE мобильные ошибки с прозрачным фоновым изображением и абсолютным позиционированием снизу

У меня 2 проблемы с WP IE:

  • прозрачные фоновые изображения имеют артефакты на прозрачных границах
  • Абсолютно расположенные элементы div внизу страницы оставляют белый пробел ~5 пикселей между панелью навигации браузера и нижней частью страницы.

Обратите внимание, что я использую div вместо img для обработки замены изображения сетчатки CSS для устройств HDPI (iPhone 4+, iPad3+, Android Galaxy S3, WP8 Lumia 920...). С img артефакты исчезли.

HTML:

    <div class="header-left"></div>
    <div class="footer-left"></div> 

CSS:

.header-left {
    position: absolute;
    top:0;
    left:0;
    background-image: url('../img/bkg_header_left.png');    
    background-size: 92px 79px; 
    width: 92px;
    height: 79px;       
}

.footer-left{
    position:absolute;  
    bottom:0;
    left:0;
    background-image: url('../img/bkg_footer_left.png');
    background-size: 315px 50px;
    width:315px;
    height:50px;    
}


/*  DPI specific CSS
 *  retina image replacement */ 
@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
    only screen and (-moz-min-device-pixel-ratio: 1.5),
    only screen and (-o-min-device-pixel-ratio: 3/2),
    only screen and (min-device-pixel-ratio: 1.5) {

    .header-left {
        background-image: url('../assets/bkg_header_left@2x.png');
    }

    .footer-left{
        background-image: url('../assets/bkg_footer_left@2x.png');
    }
}

Простой пример страницы на основе шаблона HTML5 (т.е. включает CSS для нормализации / сброса): http://file.rspreprod.fr/wp-ie-bugs/index.html

Для тех, у кого нет Windows Phone, вот захват результатов на WP7.5:

захватить

2 ответа

Итак, артефакты изображения могут быть решены с помощью: background-repeat:no-repeat;

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

Что касается белой границы - это выглядит как ваш <body> или же <html> тег имеет margin или же padding настройка применена. Если любой из этих тегов также имеет позиционирование, например position: relative - вы можете легко увидеть это поведение.

Причина в том, что position: absolute всегда на самом деле относительно ближайшего родителя. Для получения дополнительной информации об этом, проверьте эту фантастическую статью.

Если это на самом деле проблема - вы можете попробовать следующее потенциальное решение:

html, body { margin: 0; padding: 0; }

Это сократит интервал вокруг края страницы и, надеюсь, сделает ваш контент ровным с краями браузера.

Другие вопросы по тегам