В двух словах
Мне нужно решение CSS для следующих требований:
- Два вертикально повторяющихся фоновых изображения: одно выровнено по левому краю, другое по правому краю
- Одна центрированная колонна сверху с фиксированной шириной и минимальной высотой 100%
- Совместимость с различными браузерами
Немного подробнее
Сегодня появилось новое требование для моего текущего проекта веб-сайта: фоновое изображение с градиентами слева и справа (заменяет текущее фоновое изображение тела). Теперь задача состоит в том, чтобы указать два разных фоновых изображения, сохраняя при этом остальную часть макета. К сожалению (простой) макет почему-то не сочетается с двумя фонами.
Мой макет в основном представляет собой один центрированный столбец с фиксированной шириной:
#main_container {
background-color: white;
margin: 0 auto;
min-height: 100%;
width: 800px;
}
Кроме того, необходимо растянуть столбец до минимальной высоты 100%, поскольку на некоторых страницах содержится лишь небольшое количество контента. Об этом позаботятся следующие стили CSS:
html {
height: 100%;
}
body {
background-image: url('old-background.png');
margin: 0;
height: 100%;
padding: 0;
}
Пока все хорошо - пока не появилось новое фоновое изображение тела с градиентами. Я попробовал следующие решения
- Два абсолютных позиционных элемента за основным контейнером
- Одно изображение, определенное с телом, одно с HTML-классом HTML
- Одно изображение определено с телом, другое с большим делителем, начиная с основного контейнера
При любом из них решение по динамической высоте было разрушено. Либо основной контейнер не растягивался до 100%, когда он был слишком маленьким, либо фон оставался на уровне 100%, когда содержимое было на самом деле длиннее