5 CSS свойств для изображений, которые вам необходимо знать
Оцените материал
- 1
- 2
- 3
- 4
- 5
(183 голосов)
Существую CSS-свойства, которые используют изображения для создания фона элементов, создания рамок и масок «слоев», а также вырезки частей изображения. Применяя их, вы сможете добавлять изображения к элементам страницы и контролировать их положение и поведение.
Однако, существуют другие свойства, которые используются не так часто и применяются непосредственно к изображениям (тегу <img />). Использование тега является наиболее предпочтительными способом размещения изображений на страницах.
Предназначение указанных css свойств, применяемых к изображениям различное: от создания тени до увеличения резкости. Они помогают нам лучше контролировать положение и внешний вид изображений, добавляемых с помощью тега .
Давайте рассмотрим каждый из них подробнее.
Усиление резкости изображений с image-rendering
Поддержка браузерами — 90,82% (на 11.2017)
При масштабировании изображения браузер сглаживает его, чтобы оно не выглядело пиксельным, но в зависимости от разрешения изображения и экрана, результат не всегда получается приемлемым. Вы можете контролировать поведение браузера при сглаживании изображения с помощью свойства image-rendering.
Это широко поддерживаемое свойство контролирует алгоритм, применяемый браузером при масштабировании. Оно имеет 2 значения: crisp-edges и pixelated.
Значение crisp-edges удерживает цветовой контраст между пикселями. Другими словами, никакого сглаживания не производится, что отлично подходит для создания контраста.
Когда используется pixelated, соседние пиксели определенного пикселя объединиться с ним, создавая впечатление, будто они образуют один большой пиксель, отличный для экранов с высоким разрешением.
Если вы внимательно посмотрите на края цветов на gif-изображении, представленном ниже, вы сможете увидеть разницу между изображениями: обычным и с примененным CSS-свойством image-rendering: pixelated.
CSS
img { image-rendering: pixelated; }
Растягивание изображений с помощью object-fit
Поддержка браузерами — 89,7% (на 11.2017)
Значения contain, cover, fill похожи на аналогичные значения свойства background-size, которое указывает как фоновое изображение заполняет какой-либо элемент. Свойство object-fit очень похоже на упомянутое выше свойство background-size, так как оно также определяет размер изображения внутри его контейнера. Значение contain масштабирует изображение внутри контейнера. Cover делает тоже самое, но если соотношение сторон изображения и контейнера не совпадают, изображение обрезается. Fill заставляет изображение растягиваться и заполнять его контейнер. scale-down уменьшает изображение чтобы оно поместилось внутри контейнера.
HTML
<div> <img src="/rose.png' alt="rose flower'> </div>
CSS
#container { width: 300px; height: 300px; } img { width: 100%; height: 100%; object-fit: contain; }
Сдвиги изображений с помощью object-position
Поддержка браузерами — 89,7% (на 11.2017)
Аналогично дополняющему background-position свойству background-size, существует свойство object-position, которое дополняет object-fit. Свойство object-position позволяет сдвинуть изображение внутри его контейнера. Координаты можно указывать в абсолютных и относительных величинах, использовать ключевые слова или комбинировать различные значения (top 20px right 5px, center right 80px).
HTML
<div> <img src="/rose.png' alt="rose flower'> </div>
CSS
#container { width: 300px; height: 300px; } img { width: 100%; height: 100%; object-position: 150px 0; }
Выравнивание изображений с помощью vertical-align
Иногда мы добавляем тег <img /> (который по своей природе является строчным элементом) внутрь текста в качестве иллюстраций или для украшения. В таких случаях выравнивание изображений и текста в необходимом нам положении может стать сложной задачей, если вы не знаете какое свойство применить.
Свойство vertical-align применяется не только в ячейках таблиц. Оно также может выравнивать строчные элементы, родителями которых также являются строчные элементы, поэтому с его помощью мы можем выровнять изображение внутри строки текста. У этого свойства имеется довольно много значений, которые можно применить к строчным элементам, поэтому вам будет из чего выбрать.
HTML
<p> PDF <img src="/pdf.png" style="vertical-align:text-top" alt="Image"> </p>
Добавляем тень, используя filter: drop-shadow()
Тени, применяемые к тексту и блочным элементам, могут сделать ваши страницы более привлекательными. То же самое относится и к изображениям. Значения, которые передаются filter: drop-shadow() очень похожи на значения CSS-свойств для создания тени (text-shadow, box-shadow). Первые 2 указывают вертикальный и горизонтальный отступ тени от изображения, третий и четвёртый – степень размытия и радиус распространения тени, а последнее, пятое значение – цвет тени.
Как text-shadow и drop-shadow тень добавляется к объектам, к которым применяется этот фильтр. При использовании filter: drop-shadow() к изображениям во внимание принимаются прозрачные участки в изображении и тень отбрасывается с их учётом.
Оригинал статьи — http://www.hongkiat.com/blog/img-css-properties/
Перевод: Матвей Земсков
Другие материалы в этой категории: « Flexbox Patterns: замечательные элементы пользовательского интерфейса на CSS Flexbox Nanoreset — самый маленький CSS reset размером менее 1 Кб »
Наверх
Категории блога
- Битрикс (40)
- HTML-верстка (54)
- Joomla (18)
- JavaScript, jQuery (26)
- PHP (10)
- Базы данных (5)
- Разное (23)
Мои услуги
Предлагаю следующие услуги:
- Верстка шаблона сайта из дизайн-макета для CMS «1С-Битрикс Управление сайтом» и CMS “Joomla”
- Создание форм различной сложности (обратная связь, анкеты и тп) для указанных CMS
- Настройка и кастомизация компонентов и модулей для указанных CMS
- Доработка модулей и компонентов для указанных CMS, добавление нестандартного функционала
- Разработка лендингов (landing-pages)
По все вопросам обращайтесь через форму обратной связи
Скачать
Предлагаю вашему вниманию:
- Шаблон документа HTML5 (zip, 35. 41 Кб)
- Шаблон jQuery-плагина (zip, 426 байт)
- Шаблон сайта 1С-Битрикс (zip, 3.11 Кб)
Полезное
- Шпаргалки (Cheat Sheets)
- Генератор паролей
- Метка времени для заданной даты
Пропорции для img — dr.Brain
В этом очень небольшом обзоре мы изучим, как установить соотношение сторон (пропорции) для изображения, размещаемого на HTML-странице. Для чего это нужно? К примеру, полученные знания будут полезны, если возникает необходимость уместить картинки различных размеров и пропорций в квадратный блок (или любой другой блок с четко определенными размерами и соотношением сторон), не искажая изображения.
Следует понимать, что в данном случае мы будем манипулировать CSS-свойствами, ни одно изображении не пострадает и сохранит свое первозданное состояние.
Содержание
Изображение фиксированного размера
Если на страницу нужно вывести картинку заранее определенных размеров, можно воспользоваться атрибутами width
и height
.
Так как мы не знаем размеры и пропорции исходного изображения, применим CSS-свойство object-fit
. Таким образом, мы сможем быть уверены, что картинка не деформируется.
HTML:
<img src="/path/to/image.jpeg" alt="">
CSS:
img { object-fit: cover; }
Результат можно увидеть на нижеприведенной иллюстрации. Заметьте: исходное изображение имеет большую ширину, но оно не подверглось искажениям, вместо этого оно “обрезано” по центру:
object-fit: cover
Свойство object-fit
принимает значения fill
, contain
, cover
, none
, scale-down
. Подробно информацию можно изучить на сайте MDN.
Изображение нефиксированного размера
Чтобы привести картинку, изменяющую свои размеры вместе с родительским блоком, к определенным пропорциям нужно воспользоваться оберткой.
HTML:
<div> <img src="/media/desk.jpg" alt=""/> </div>
CSS:
/* Position child elements relative to this element */ .aspect-ratio-box { position: relative; } /* Create a pseudo element that uses padding-bottom to take up space */ .aspect-ratio-box::after { display: block; content: ''; /* 16:9 aspect ratio */ padding-bottom: 56.25%; } /* Image is positioned absolutely relative to the parent element */ .aspect-ratio-box img { /* Image should match parent box size */ position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
Приблизительно так будет выглядеть результат при соотношении сторон 16:9:
16:9
Свойство padding-bottom
определяет высоту родительского контейнера, выраженную в процентах от его ширины. Например, при ширине блока 400px результирующая высота составит 56,25% от 400px, то есть около 225px.
Для того, чтобы определить нужное нам значение padding-bottom
необходимо разделить высоту на ширину.
Например, при соотношении сторон 16:9, арифмитические манипуляции будут выглядеть так:
9 / 16 = 0.5625
Выразим результ в процентах (умножим полученное число на 100):
0.5625 * 100 = 56.25
Результат: 56.25%
Вот и все.
Заключение
Мы научились выводить на HTML-изображение в различных пропорциях без деформации исходной картинки. Предложенные варианты работы с изображениями фиксированных и нефиксированных охватывают значительную часть стандартных ситуаций, возникающих при верстке.
Полезно прочитать
- Как управлять размерами изображения с помощью CSS?
- CSS. Магия отступов
Как расположить изображение в CSS
следующий → ← предыдущая Существует множество способов позиционирования изображения в CSS, например, использование свойства object-position , использование свойства float (для выравнивания элементов по левому или правому краю). Используя свойство позиции объектаСвойство object-position в CSS определяет выравнивание содержимого внутри контейнера. Используется с свойство object-fit , чтобы определить, как элемент, такой как При использовании свойства object-fit значение по умолчанию для object-position равно 50% 50% , поэтому по умолчанию все изображения располагаются в центре их поля содержимого. Мы можем изменить выравнивание по умолчанию, используя свойство object-position . Синтаксиспозиция объекта: <позиция> | начальная | наследовать; Значение position свойства object-position определяет позицию видео или изображения внутри контейнера. Он принимает два числовых значения, где первое значение управляет осью x, а второе значение управляет осью y. Мы можем использовать строку, такую как left, right или center и т. д. для позиционирования изображения в контейнере. Он допускает отрицательные значения. Мы можем понять это более ясно, используя несколько примеров. ПримерВ этом примере мы используем строковые значения, такие как «справа сверху», «по центру сверху», и «слева вверху» для позиционирования изображения. <голова> object-position: по центру вверху;png»/>позиция объекта: слева вверху;позиция объекта: справа вверху;тело> |