Картинка по размеру блока
Часто возникает необходимость растянуть картинку по размеру блока с сохранением пропорций, чтобы изображение не искажалось. При этом результат бывает нужен разный. Иногда нужно обязательно заполнить всё пространство блока. А иногда важно отобразить всю картинку. Для этого в CSS есть свойство object-fit . Оно может иметь такие значения:
object-fit: fill — картинка просто заполняет блок без сохранения пропорций (по умолчанию)
object-fit: cover — картинка полностью заполняет всё пространство блока. Края изображения могут быть обрезаны из за того, что форма блока не совпадает с формой картинки.
object-fit: contain — вся картинка отображается в блоке. Часть блока может быть не заполнена из за того, что форма блока не совпадает с формой картинки.
object-fit: none — картинка отображается в своём реальном масштабе
object-fit: scale-down — соответствует либо contain либо none . Из этих вариантов выбирает тот, который меньше.
object-fit: initial — возвращает значение по умолчанию, если ранее изображению было установлено другое значение
object-fit: inherit — значение принимается от родительского элемента
Результат использования свойства object-fit выглядит так:
background — size
Нужно чтобы фоновая картинка заняла всю площадь элемента? Вам нужно это свойство!
Время чтения: меньше 5 мин
Открыть/закрыть навигацию по статье
Контрибьюторы:
- Светлана Коробцева ,
- Антон Капустинский
Обновлено 28 августа 2023
Кратко
Скопировать ссылку «Кратко» Скопировано
Свойство background — size позволяет изменять размер фонового изображения. Если фоновая картинка не совпадает по размеру с размерами блока, то при помощи этого свойства можно сделать так, чтобы она, картинка занимала всю площадь блока или, наоборот, была определённого размера.
Пример
Скопировать ссылку «Пример» Скопировано
Создадим блок и в качестве фона зададим ему красивую панораму:
div class="element">div>
.element height: 100vh; background-color: #f1f1f1; background-image: url("landscape.jpg"); background-repeat: no-repeat;>.element height: 100vh; background-color: #f1f1f1; background-image: url("landscape.jpg"); background-repeat: no-repeat; >

Попробуйте поменять размеры фоновой картинки и посмотреть, как будет меняться фоновый паттерн.
Как сделать так, чтобы картинка обрезалась и заполняла весь блок?
Как сделать так, чтобы при развертывании формы на весь экран картинка в форме тоже развертывалась автоматически?
Как сделать так, чтобы при развертывании формы на весь экран картинка в форме тоже развертывалась.
Как сделать средствами ВБА чтобы обрезалась первые знаки до последнего?
Доброе время суток коллеги. Есть такая задачка: Нужно занасить в базу Аксесс 2002 все файлы.
Как сделать так, чтобы у меня в экране 1,0 не была на весь экран?
Может кто читал мою тему снять ограничение. Поставлю вопрос по другому. Как сделать так чтобы у.
Регистрация: 27.12.2012
Сообщений: 103
Записей в блоге: 1
Смотря от чего у тебя эти белые области, если не от margin и padding то попробуй overflow
Регистрация: 24.04.2013
Сообщений: 11
интернет магазин, товар отображается в ряд
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
.tiny_products { list-style: none; display: block; margin-top: 15px; } .tiny_products .product{ width: 195px; margin-right: 5px; margin-bottom: 10px; display: -moz-inline-box; display: inline-block; *zoom: 1; *display: inline; word-spacing: normal; vertical-align: top; border: 1px solid #e0e0e0; } .tiny_products .product .image { vertical-align: middle; text-align: center; width: 188px; height: 200px; line-height: 200px; background-color: #ffffff; padding: 3px; margin-bottom: 5px; } .tiny_products .product .image img{ vertical-align: middle; max-width: 188px; } .tiny_products .product h3 { text-align: center; font-size: 16px; margin-bottom: 5px; font-weight: normal;
Добавлено через 27 минут
Сайт
1025 / 678 / 295
Регистрация: 04.04.2013
Сообщений: 2,707
Никак картинку не залить.
Регистрация: 07.05.2013
Сообщений: 29
bondj136, чего то я не понял. тебе надо просто растянуть картинку — исключив белые области?
Регистрация: 24.04.2013
Сообщений: 11
верно, но растянуть, не нарушая пропорции
Регистрация: 07.05.2013
Сообщений: 29
bondj136, в плагине Simple Image Gallery Extended есть настройка там выстави то — которое считаешь нужным
Регистрация: 24.04.2013
Сообщений: 11
у меня не джумла.. придется заливать картинки нужного размера
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 237
Всем привет.
Не обязательно нужного размера. Размер и пропорции монитора, у разных пользователей могут быть разные.
Благодаря css3 появилось хорошее свойство.
background-size: cover;
Увеличивает картинку сохраняя пропорции и заполняет все окно браузера.
Только нужно учесть,
1- если картинка маленькая, то на мониторе 1920х1080 увеличится до очень плохого качества.
2- если много содержимого на странице, то картинка будет увеличена в высоту. сохраняя пропорции правый край уйдет далеко. Полосы прокрутки не будет, т.к. это фон, а останется только левая-верхняя часть картинки. И еще, увеличение, а значит потеря качества.
3- если использовать картинку 2560×1600 или 2880×1800 — то очень долго будет грузится. Это не сильно критично.
А вот при прокрутке страницы вниз, на слабых компах — будет перерисовка с начала. Аля, слайд-шоу.
Лучше использовать заполнитель.
Магия CSS: Методы обрезки изображений при помощи CSS и SVG


Всем привет, меня зовут Анна Блок и сегодня мы поговорим о том, как обрезать изображения, не используя графических программ.
Где это может пригодиться?
Прежде всего, на сайтах, где контент с изображениями, вероятнее всего, не будет подрезаться под какой-либо конкретный блок.
Яркий пример: блог на WordPress.
Предположим, вы хотите, чтобы обложка вашей статьи имела пропорции 1:1 (квадрат). Ваши действия:
- Скачаете подходящую картинку из интернета;
- Обрежете ее в фотошопе до нужных пропорции;
- Опубликуете статью.
Зайдя на сайт, вы увидите тот результат, который ожидали.
Но, предположим вы забыли обрезать картинку в фотошопе и выгрузили рандомное изображение в качестве обложки из интернета, что будет тогда?! Правильно, верстка сломается. А если вы совсем не использовали CSS, то картинка HD разрешения и вовсе может перекрыть весь обзор на текст. Поэтому важно уметь делать обрезку изображений при помощи CSS стилей.
Давайте разберем разные ситуации того, как это можно реализовать не только при помощи CSS, но и SVG.
Пример 1

Попробуем обрезать изображение которое размещено при помощи background-image. Создадим небольшую HTML-разметку
Переходим к стилизации CSS. Через background-image добавляем изображение, указываем рамки для нашего изображения, центрируем изображение при помощи background-position и задаем background-size :
Ознакомиться подробнее с HTML и CSS можно тут:
Это был первый и самый простой метод по обрезке изображения. Теперь давайте рассмотрим второй пример.
Пример 2

Предположим, у нас есть всё тот же контейнер box внутри которого находится тег img с изображением, которое мы сейчас будем стилизовать.
Далее мы будем стилизовать два элемента: класс box и тег img .
Начнем работу со связкой свойств position: relative для box и для position: absolute для img .
Также разместим наше изображение по центру относительно того объекта, который мы создадим. И используем свойство, которое довольно редко используются: object-fit .
.box < position: relative; overflow:hidden; width:300px; height:300px; >.box img
На мой взгляд, это лучший метод. Он идеально подойдет для блогов, если вы используете изображения для постов совершенно разных пропорций.
Ознакомиться подробнее с HTML и CSS можно тут:
Пример 3

Также создавать обрезку для изображений мы можем в момент, если мы вставляем их в SVG элементы. Для примера возьмем круг. SVG мы можем создать при помощи тегов. Создаем обрамляющий тег svg внутри которого будет находится тег circle и тег pattern . В теге pattern пишем тег image . В нем мы указываем атрибут xlink:href и добавляем изображение. Также добавим атрибуты ширины и высоты. Но на этом не все. Нам потребуется добавить значение fill . Чтобы наша работа считала законченной мы добавим вспомогательный атрибут preserveAspectRatio в тег image , который позволит заполнить наше изображение «от и до» по всему кругу.
Я не могу назвать этот метод универсальным. Зато его можно использовать в исключительных случаях. Например, если мы затронули тему блога, то идеально такой метод мог бы вписаться для аватарки автора который пишет статью.
Ознакомиться подробнее с HTML и CSS можно тут:
Итоги:
Мы разобрали 3 метода обрезки изображения на сайтах: при помощи background-image , используя тег img и связанный с паттерном svg со встраиванием растровых изображений при помощи тега image . Если вы знаете ещё какие-то методы по обрезке изображения при помощи SVG, то делитесь ими в комментариях. Не только мне, но и другим будет полезно узнать о них.
Не забывай задавать свои вопросы по вёрстке или фронтенд-разработке у профессионалов на FrontendHelp в режиме онлайн.
Смотреть видео:

