Растянуть картинку на весь div

Internet Explorer Chrome Opera Safari Firefox Android iOS
9.0+ 3.0+ 9.6+ 3.1+ 3.6+ 2.0+ 1.0+

Задача

Растянуть фоновую картинку на всю ширину окна браузера с помощью CSS3.

Решение

Для масштабирования фона предназначено свойство background-size , в качестве его значения указывается 100%, тогда фон будет занимать всю ширину окна браузера. Для старых версий браузеров следует использовать специфические свойства с префиксами, как показано в примере 1.

Пример 1. Растягиваемый фон

HTML5 CSS 2.1 IE Cr Op Sa Fx

Результат данного примера показан на рис. 1.

Рис. 1. Вид фона при уменьшенном размере окна

При увеличении размера окна браузера фон также начнёт расширяться, это приведет к ухудшению вида картинки (рис. 2).

Рис. 2. Вид фона при увеличенном размере окна

  • 2019-12-25
  • 11
  • Мартаа
    2015
  • Доброго времени суток. 🙂

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

    Помню перерыл много информации и испробовал не мало способов, пока не нашел именного того решения, что нужно было именно в тот момент.

    Ниже я покажу 3 способа, которые растягивают фон на всю ширину экрана.

    Способ №1

    Первый способ использует чистый CSS3. Все получается благодаря свойству background-size. В моем случаи я буду растягивать картинку на всю ширину экрана, то есть присвою свойства к тегу body. Вы можете применить по надобности к блоку например.

    Читайте также  Последний визит в одноклассниках

    Растягивать на весь экран будем вот эту картинку с милой девушкой 🙂

    В общим определяемся с блоком которому присваиваем стили и дописываем в файле стилей данному блоку, следующий код:

    Как видите, в параметре background добавляем путь к изображению и устанавливаем положение картинки относительно экрана. В нашем случаи это center и top. Это означает что картинка будет в центре экрана, и прижата своим верхом к верху экрана. Это для того, чтобы всегда было видно лицо девушки. Если у Вас например абстрактный фон или природа, где видно небо, поле, горизонт, то можно поставить значения center и center. В общим если вы знакомы с CSS, то думаю разберетесь. Также установлено значение fixed, которое фиксирует изображение.

    Способ очень простой, я его использую всегда и он меня устраивает на все 100%. Есть лишь одно но. Старые браузеры, не знакомы с CSS3, поэтому те кто используют древние версии не увидят должного результата.

    Способ №2

    Данный способ использует обычный CSS. По сути тоже простой. Выводим в теле сайта изображение присвоив id — bg:

    И прописываем стили:

    Позиционирование фиксированное и проходит растяжение на весь экран.Вот так просто :).

    Способ №3

    Тут применяется jQuery. Поэтому сначала нужно подключить библиотеку, если она не подключена ранее.

    После библиотеки подключаем скрипт, который и будет масштабировать наш фон

    Далее уже как и во втором способе, в теле сайта выводим картинку и присваиваем ей id, например bg.

    И в конце добавляем стилей, чтобы все работало. Открываете файл стилей и добавляете в него следующий код:

    По стилям видно, что мы добавили позиционирование. В данном случаи это fixed. Изображение при прокрутке будет оставаться фиксированным фоном, если же изменить позиционирование на absolute, то фон можно прокрутить. Кстати, так же можно сделать и с первыми двумя способами.

    Читайте также  Радиатор на материнской плате сильно греется

    Также указан параметр — z-index: -1, для того чтобы картинка была за текстом. Если у Вас нет текста, который должен быть спереди, можете убрать этот параметр.

    Какой способ использовать, решать Вам. Как и писал Выше, мне более близок первый способ. Он самый простой и не хуже других.

    На этом все, спасибо за внимание. 🙂

    Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты 🙂

    Имеется некий div с классом .img-container и внутри картинка.

    Истинные размеры картинки — могут быть любые. Внимание! Вопрос.

    Как сделать так чтобы картинка вписывалась в размер DIV по ширине и высоте, и пропорционально увеличивалась или уменьшалась, если DIV будет менять размеры (а он будет менять размеры)?

    Аналог на CSS для DIV:

    9 ответов 9

    вот пример когда контейнер ресайзится в результате ресайза окна

    если хотите без jQuery, это реально, но делайте сами 🙂

    Попробуйте сделать так:

    Обновление

    Если не получится, попробуйте так

    Средствами CSS это сложно реализовать (попробуйте в мой пример у .img-container в height подставить 300px; ). Можно попробовать с пом. ajax вычислять широту и высоту контейнера и отдавать параметры картинке img.

    Думаю тут проще было бы все сделать через background:

    А ларчик то просто открывается.

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

    Если хочешь добавить адаптивность, еще один блок выше создай, сделай его flex, задай атрибут flex-wrap: wrap

    Читайте также  Слово икра поменять буквы местами

    Если через CSS, у тебя div с определенным классом, присвой картинке этот же класс, у тебя получится картинка такой же формы что и тот div в который ты ее "запихиваешь". И как раз таки при изменении параметров div’a этого класса, картинка будет тоже изменяться (увеличишь div в двое, то и картинка увеличится в двое). Так что если все грамотно сделать через классы, то это должно тебе помочь. Это мое субъективное мнение и как вариант помочь решить твою "проблему"

  • Ссылка на основную публикацию
    Adblock
    detector