Подтвердить что ты не робот

Фоновое изображение тела CSS фиксировано для полноэкранного режима даже при масштабировании/выводе

Я пытаюсь добиться чего-то подобного с помощью CSS:

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

body
{
    background: url(../img/beach.jpg) no-repeat fixed 100% 100%;
}

Теперь я могу проверить, что окно действительно заполнено этим изображением, по крайней мере это работает на моем Firefox 3.6

Однако, когда я попытался увеличить/уменьшить масштаб (ctrl + -/+), он испортился, изображение просто растягивается/сжимается при масштабировании страницы.

Есть ли лучший способ сделать это исключительно с помощью CSS? Я не нашел хорошего свойства для фонового изображения.

Или я должен начать думать о jQuery, чтобы манипулировать шириной и высотой на лету? Они оба установлены на 100%, поэтому я считаю, что должен работать "как всегда": (

Спасибо за любое предложение заранее!

4b9b3361

Ответ 1

Я использовал эти методы, и они оба работают хорошо. Если вы читаете "за" / "против" каждого из них, вы можете решить, что подходит для вашего сайта.

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

Ответ 2

существует еще один метод

использование

background-size:cover

То есть полный набор css

body { 
    background: url('images/body-bg.jpg') no-repeat center center fixed;
    -moz-background-size: cover;
    -webkit-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
} 

Последние браузеры поддерживают свойство по умолчанию.

Ответ 3

Добавьте это в свой файл css:

.custom_class
 {
    background-image: url(../img/beach.jpg);
    -moz-background-size: cover;
    -webkit-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
 }

а затем в вашем файле .html(или .php) вызовите этот класс следующим образом:

<div class="custom_class">
   ...
</div>

Ответ 4

Вот простой код для полноэкранного фонового изображения при масштабировании вы просто применяете width:100% в стиле /css, который он

position:absolute; width:100%;

Ответ 5

Вы можете сделать довольно много с простым css... свойство css background-size может быть установлено как целое, так и просто cover, как указал Ранджит.

Параметр background-size: cover масштабирует изображение, чтобы покрыть весь экран, но может означать, что некоторые изображения не отображаются на экране, если соотношение сторон экрана и изображения отличается.

Хорошей альтернативой является background-size: contain, которая изменяет размер фонового изображения в соответствии с меньшей шириной и высотой, гарантируя, что все изображение будет видимым, но может привести к почтовому ящику, если соотношение сторон отличается.

Например:

body {
      background: url(/images/bkgd.png) no-repeat rgb(30,30,30) fixed center center;
      background-size: contain;
     }

Другими вариантами, которые я считаю менее полезными, являются: background-size: length <widthpx> <heightpx>, который устанавливает абсолютный размер фонового изображения. background-size: percentage <width> <height> фоновое изображение - процент от размера окна. (см. страница w3schools.com)