Давайте поговорим об изображениях в HTML. Если я перетащу изображение на страницу без каких-либо других ограничений, оно примет свой «естественный размер», то есть буквальный размер изображения в пикселях. Если я укажу CSS max-width
и max-height
, то он сохранит свое естественное соотношение сторон, но уменьшит масштаб, чтобы соответствовать ограничениям по размеру. Потрясающий!
Я хочу точного поведения для произвольного элемента. То есть я хочу создать <div>
или что-то еще, что имеет естественный размер (который я бы указал в пикселях) и сохраняет соотношение сторон при воздействии max-width
и max-height
. (Дополнительные баллы: было бы здорово, если бы техника также поддерживала min-width
и min-height
.)
Вот еще информация, которую я собрал:
Для изображения HTML5 вы можете прочитать естественный размер изображения с атрибутами
naturalWidth
иnaturalHeight
при условии, что атрибутcomplete
истинен. К сожалению, как указывает MDN, эти свойства доступны только для чтения и специфичны для элементов изображения.Этот подход великолепен, но (хотя высота соответствует
max-width
) ширина не отвечает доmax-height
.Небольшой поиск не дал решения только для CSS, что заставляет меня думать, что его может и не быть. Я также приму решения JavaScript, но они должны быть устойчивыми к изменениям размера окна и размера родительского элемента.
width
и CSSheight
DIV, а затем дополнительно определитьmax-width
и/илиmax-height
, чтобы уменьшить DIV, верно? - person Šime Vidas   schedule 28.07.2012