Дополнительно
CSS принудительно изменяет размер изображения и сохраняет соотношение сторон
Я работаю с изображениями и столкнулся с проблемой соотношения сторон.
<img src="big_image.jpg" width="900" height="600" alt="" />
Как вы можете видеть, height
и width
уже указаны. Я добавил правило CSS для изображений:
img {
max-width:500px;
}
Но для big_image.jpg
я получаю width=500
и height=600
. Как я могу настроить изменение размера изображений, сохранив при этом соотношение сторон.
497
18
в
в
Это позволит сделать изображение уменьшиться, если это's слишком большой для указанной области (как недостаток, он не будет увеличить изображение).
в <сильный>решения ниже позволит расширении и свертывании изображения</сильные> в зависимости от материнской ширина коробки.
Все изображения имеют родительский контейнер с фиксированной шириной <ем>только для демонстрационных целей</ЭМ>. В производстве, это будет ширина родительского окна.
Лучшая Практика (2018):
Это решение указывает браузеру для отображения изображения с максимальным ширине и регулировать высоту в процентах от этой ширины.
в
в
Решение Птицевод#:
С решением любитель, вы'll быть в состоянии, чтобы обрезать изображение, независимо от ее размера и добавить цвет фона, чтобы компенсировать кадрированием.
в
в
Для строки с указанием обивка, вам нужно рассчитать соотношение сторон изображения, например:
Так, отступ сверху = 34.37%.
Я'вэ боролся с этой проблемой довольно сложно, и дошли до этого простого решения:
Вы можете регулировать ширину и высоту, чтобы соответствовать вашим потребностям, а объект-фит собственность будет сделать обрезку для вас.
Ура.
Свойство background-size ie>=9, но если вас это устраивает, вы можете использовать div с
background-image
и установитьbackground-size: contain
:Теперь вы можете просто установить размер div на любой желаемый, и изображение не только сохранит свое соотношение сторон, но и будет центрировано как по вертикали, так и по горизонтали внутри div. Только не забудьте задать размеры в css, поскольку у div нет атрибутов width/height в самом теге.
Этот подход отличается от ответа setecs, при использовании этого подхода область изображения будет постоянной и определенной вами (оставляя пустые пространства по горизонтали или вертикали в зависимости от размера div и соотношения сторон изображения), в то время как ответ setecs даст вам поле, точно соответствующее размеру масштабированного изображения (без пустых пространств).
Редактировать: Согласно документации MDN background-size documentation вы можете имитировать свойство background-size в IE8, используя собственное объявление фильтра:
Очень похож на некоторые ответы здесь, но в моем случае у меня были образы, которые иногда были выше, иногда больше.
Этот стиль работал как шарм, чтобы убедиться, что все изображения использовать все доступное пространство, сохранить соотношение и не режет:
Удалите свойство "высота".
Указывая оба свойства, вы изменяете соотношение сторон изображения. Если задать только одно, размер будет изменен, но соотношение сторон сохранится.
Опционально, чтобы ограничить увеличение размеров:
Просто добавьте это в ваш CSS, она будет автоматически сжиматься и расширяться с сохранением исходного соотношения.
Не существует стандартного способа сохранения соотношения сторон для изображений, у которых
width
,height
иmax-width
указаны вместе.Поэтому мы вынуждены либо указывать
width
иheight
, чтобы предотвратить "прыжки" страницы при загрузке изображений, либо использоватьmax-width
и не указывать размеры изображений.Указание только
width
(безheight
) обычно не имеет особого смысла, но вы можете попробовать переопределить HTML-атрибутheight
, добавив в таблицу стилей правило типаIMG {height: auto; }
.См. также соответствующее сообщение в Firefox ошибка 392261.
Задать класс CSS вашего контейнера тег изображения в `имидж-класса:
и добавить вам вашу таблицу стилей CSS.
Для поддержания отзывчивые изображения и при этом обеспечить изображение в определенной пропорции, вы можете сделать следующее:
HTML-код:
И СКС:
Это можно использовать для установления определенного соотношения сторон, независимо от размера изображения, которое авторы загружают.
Спасибо @Kseso в http://codepen.io/Kseso/pen/bfdhg. Проверить этот URL дополнительные коэффициенты и рабочий пример.
https://jsfiddle.net/sot2qgj6/3/
Вот вам и ответ если вы хотите поместить изображение с фиксированный процент от ширины, но не фиксированные в пикселях ширина.
И это будет полезно при общении с различных размеров экрана.
Приемы
обивка-топ
для установки высоты от ширины.Макс-height и Max-ширина
, чтобы убедиться, что изображение не будет за родительского элемента.Я've также комментировать большинство трюков внутри скрипки.
Я также найти некоторые другие способы, чтобы это произошло. Не будет реального изображения в HTML, так что я personly скачал верхний ответ, когда мне нужно и"ИМГ" и элемент в HTML.
простой CSS с помощью фона http://jsfiddle.net/4660s79h/2/
фон-изображение с Слово на верх http://jsfiddle.net/4660s79h/1/
понятие использовать позицию Абсолюта отсюда http://www.w3schools.com/howto/howto_css_aspect_ratio.asp
В силу изображения, которые вписываются в точный размер, вы Дон'т должны написать слишком много кодов. Это's так просто
в
в
Вы можете использовать это:
Вы можете создать элемент div, как это:
И использовать этот CSS стиль его:
Это позволит сделать изображение уменьшиться, если это's слишком большой для указанной области (как недостаток, он не будет увеличить изображение).
Решение по "ситех" в порядке и"подгонка" в автоматическом режиме. Но, чтобы оптимально расширить, чтобы соответствовать в 'авто' режим, вы должны сначала применить полученные изображения в ИД темп Проверьте, если он может быть расширен в высоту или в ширину (в зависимости от его соотношения сторон в/с соотношение сторон дисплея блока),
Этот подход полезен, когда полученные изображения меньше, чем коробка дисплея. Вы должны сохранить их на свой сервер в оригинальный размер, а не их расширенный вариант, чтобы заполнить ваш ящик побольше дисплей для сохранения размера и пропускной способности.
Полноэкранные презентации:
Имейте в виду, что если посмотреть-порт высота больше, чем изображение изображение, естественно, будет деградировать относительной разницы.
в
в
Как насчет того, используя псевдо-элемент для вертикального выравнивания? Это меньше кода на карусели, но я предполагаю, что это работает на любом фиксированный размер контейнера. Это позволит сохранить пропорции и вставить @серый-темно-баров сверху/снизу или слева/запись на кратчайшее расстояние. В то же время изображение будет центрироваться по тексту-выровнять и по вертикали псевдо элемент.