Проблема с фоновым отображением IE
-
03-07-2019 - |
Вопрос
Я создаю веб-сайт для своей церкви, и у меня возникают проблемы с его правильным отображением в IE.Кажется, что у моего div "sidebox" фоновая позиция переопределена "margin:0 auto; ", поскольку фон отображается по центру, а не справа, что приводит к смещению сайта вправо.
Вот код:
.sidebox {
margin: 0 auto;
background-image: url(images/bg-container-right.jpg);
background-repeat: no-repeat;
background-position: bottom right !important;
position: absolute;
left: 0px;
width: 960px;
}
.boxhead {
background-image: url(images/bg-container-top.jpg);
background-repeat: no-repeat;
background-position: top right;
height: 37px;
}
.boxbody {
background-image: url(images/bg-container-left.jpg);
background-repeat: no-repeat;
background-position: bottom left !important;
width: 25px !important;
}
.boxtopcorner {
background-image: url(images/bg-container-top-right.jpg);
background-repeat: no-repeat;
background-position: top left;
width: 25px;
height: 37px;
}
<div class='sidebox' style='border: 1px solid;'>
I'm in the box
<div class='boxhead'>
<div class='boxtopcorner'></div>
</div>
<div class='boxbody' style='height: 750px;'>
<!-- Content Goes Here -->
</div>
</div>
Ниже приведена ссылка на запущенный сайт.Вы можете видеть, что он нормально работает в FF и Safari, но не в IE.Мой приведенный выше код не содержит содержимого, и его удаление не устраняет проблему.Бегущая страница
Решение
Глядя на это через панель инструментов разработчика IE, это дает .sidebox выравнивание по центру.Изменение этого значения на левое, кажется, исправляет это.
.sidebox {
...
text-align: left;
}
Другие советы
Я бы использовал совершенно другой подход к тому, как вы измельчаете фоновое изображение.
- Создайте верхнее и нижнее изображение тени со скругленными углами.Используйте их в качестве фона для верха и низа (как будто это еще не было очевидно).
- Создайте "длинное" изображение высотой 1 пиксель для тени с обеих сторон.Используйте это для оформления фона всей области содержимого страницы.
- Старайтесь не использовать абсолютное позиционирование.Такой же макет можно было бы создать с помощью поплавков.Например:
.контейнер { ширина:960 пикселей;маржа:0 авто;}
.header { width: 960px; height: 20px; background: url(top.jpg) no-repeat; }
.footer { width: 960px; height: 20px; background: url(bottom.jpg) no-repeat; }
.body { width: 960px; background: url(body.jpg) repeat-y; }
<div class='container'>
<div class='header'> </div>
<div class='body'>
Контент можно найти здесь...используйте значения с плавающей точкой для создания столбцов вместо абсолютного позиционирования.
</div>
<div class='footer'> </div>
</div>