Css image size: How to change image size in CSS

разрешение изображения

— CSS: каскадные таблицы стилей

Экспериментальная: Это экспериментальная технология
Внимательно проверьте таблицу совместимости браузера, прежде чем использовать ее в производстве.

CSS-свойство image-resolution задает собственное разрешение всех растровых изображений, используемых в элементе или на нем. Он влияет на изображения содержимого, такие как замененные элементы и сгенерированное содержимое, а также на декоративные изображения, такие как background-image 9.0012 изображений.

Разрешение изображения определяется как количество пикселей изображения на единицу длины, например, пикселей на дюйм. По умолчанию CSS предполагает разрешение одного пикселя изображения на единицу CSS px; однако свойство image-resolution позволяет указать другое разрешение.

 разрешение изображения: исходное изображение;
разрешение изображения: 300 dpi;
разрешение изображения: исходное изображение 300 dpi;
разрешение изображения: снимок с разрешением 300 dpi;
/* Глобальные значения */
разрешение изображения: наследовать;
разрешение изображения: начальное;
разрешение изображения: вернуться;
разрешение изображения: обратный слой;
разрешение изображения: не установлено;
 

Значения

<разрешение>

Явно указывает внутреннее разрешение.

с изображения

Использует собственное разрешение, указанное в формате изображения. Если для изображения не указано собственное разрешение, используется явно заданное разрешение (если оно задано), в противном случае по умолчанию используется значение 1dppx (1 пиксель изображения на единицу CSS px).

защелка

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

Примечание: Поскольку векторные форматы, такие как SVG, не имеют внутреннего разрешения, это свойство не влияет на векторные изображения.

,
Начальное значение 1DPPX
применяется к ALL Elements
, за исключением,
, за исключением. для значения «привязки»
Тип анимации дискретный
 разрешение изображения = 
[из изображения || <разрешение> ] &&
щелчок?

Установка высокого разрешения для печати

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

 @медиа печать {
  .myimage {
    разрешение изображения: 300 dpi;
  }
}
 

Использовать разрешение изображения с откатом

Использует разрешение изображения. Если у изображения нет разрешения, используйте 300 точек на дюйм, а не 1 точку на дюйм по умолчанию.

 .myimage {
  разрешение изображения: исходное изображение 300 dpi;
}
 
Спецификация
Значения изображений CSS и модуль замененного содержимого Уровень 4
# the-image-resolution

В настоящее время ни один браузер не поддерживает это свойство.

  • Другие свойства CSS, связанные с изображением:
    object-fit
    , object-position , image-orientation , image-rendering .
  • Ошибка хрома: 1086473.

Последнее изменение: , авторы MDN

Адаптивные изображения, атрибуты размеров и неожиданные размеры изображений | by Mark Root-Wiley

tl;dr: Если не ограничиваться CSS или атрибутом width , новый атрибут HTML5 размеры — даже если оставить значение по умолчанию — будет растягивать изображение, потенциально делая его больше, чем его «физические» размеры.

Мое устаревшее [технически правильное] предположение о размерах изображений

Вот простейший HTML-код, который вы можете использовать для изображения:

  

Кроме того, что вышеприведенное изображение недоступно, это изображение совершенно нормальное и по умолчанию будет отображаться на экране компьютера в своем естественном размере. Если example.jpg имеет ширину 2000 пикселей, на экране он будет иметь ширину 2000 пикселей.

Конечно, в мире адаптивных изображений мы накладываем ограничения на наши изображения с помощью CSS:

 img { 
max-width: 100%;
}

Теперь изображение отображается в своем естественном размере, если оно не ограничено родительским контейнером! Отличный.

Это все, что мне нужно для адаптивных веб-сайтов, которые я создал за последние несколько лет.

Адаптивные изображения делают вещи лучше (и усложняют)

Адаптивные изображения — это огромная победа для разработчиков интерфейса, потому что мы можем указывать атрибуты srcset и размеры и поощрять браузеры загружать только самое большое изображение, которое им нужно:

  src="example.jpg", 
srcset="example.jpg 2000w,
example-thumb.jpg 400w,
example-medium.jpg 1000w,
[email protected] 4000w"
size="100vw">

Для браузеров, которые его поддерживают, теперь у нас есть адаптивные изображения. "ширина области просмотра"). Важно отметить, что если вы укажете srcset , но не размеры , "100vw" является предполагаемым значением по умолчанию для атрибута размеров . (Предзнаменование!)

Затем браузер должен выбрать наиболее подходящее изображение из srcset для использования в зависимости от размеров, которые мы им сообщаем. Например:

  • Умные часы? Вы можете получить example-thumb.jpg.
  • Совершенно новый 27-дюймовый iMac? Вы получаете [email protected] !

(Браузеры, которые не понимают srcset , просто возвращаются к src , как всегда) 2 900 0 ! Где все становится сложно

Итак, мы предлагаем браузерам выбрать идеальное изображение. Это здорово! Вот в чем проблема: что происходит, когда атрибуту размеры требуется изображение большего размера, чем у нас есть?

Ответ? Плохие вещи. Давайте посмотрим:

  src="example. gif", 
srcset="example.gif 200w"
size="(min-width: 400px) 400px, 100vw"
class="logo">

На этот раз мы сообщаем браузеру, что изображение будет заполнять окно браузера шириной до 400 пикселей, после чего оно всегда будет отображаться шириной 400 пикселей. Это то, что вы можете увидеть для логотипа в редактируемом пользователем каталоге.

Мы могли бы даже убедиться, что это изображение никогда не превышает 400 пикселей с помощью CSS:

 img.logo { 
max-width: 400px;
}

Проблема в том, что благонамеренная, но технологически невежественная некоммерческая организация Widgets for the World загрузила только логотип шириной 200 пикселей. Что происходит? Браузер растягивает изображение до ширины 400 пикселей, хотя ширина изображения всего 200 пикселей!

Почему? Из-за чего мы сказали браузеру в размерах .

В первый раз, когда я столкнулся с этим, я не ожидал этого, но это оказалось предполагаемым поведением. Из MDN спецификация:

Выбранный исходный размер влияет на внутренний размер изображения (размер отображения изображения, если не применяются стили CSS).

Вот как это выглядит на практике в Chrome, Firefox, Safari и Edge:

Вариации атрибута размеров с небольшим адаптивным изображением. Посмотреть полную демонстрацию на CodePen.

Это изображение содержит только 200 пикселей по горизонтали, но браузер растягивает его до 400 пикселей в ширину или даже больше!

К счастью, в конце вы увидите легкое «исправление»: наш старый добрый друг атрибут width !

  src="example.gif", 
srcset="example.gif 200w"
size="(min-width: 400px) 400px, 100vw"
width="200" /* <=== TA -ДА! */
class="logo">

Пока вы можете указать атрибут width так, чтобы он отражал истинный максимальный размер вашего самого большого изображения , вы не столкнетесь с проблемой наличия размеры делают ваше изображение шире, чем оно должно быть естественным образом.

Это действительно происходит?

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

Я бы хотел, чтобы мы жили в мире, где все понимают плотность пикселей и Photoshop, и почему вы не должны сохранять свой логотип в формате JPG, но мы этого не делаем и никогда не будем.

Эти мелкие случаи могут превратиться в большую головную боль. Надеюсь, я спас тебя.

Об авторе

Марк Рут-Вили создает веб-сайты WordPress для некоммерческих и других организаций. Обычно он блогов в MRW Web Design , но это для менее технических вещей, касающихся удобства использования и некоммерческих веб-сайтов. Он также только что начал NonprofitWP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *