У меня есть следующие требования для некоторых CSS, которые мне нужно написать. У меня есть изображение, которое нужно вписаться в область, и его размер должен оставаться пропорциональным.
Я хочу, чтобы он имел максимальный размер 25 пикселей и высоту 25 пикселей. Но если он превышает ширину 25 пикселей или высоту 25 пикселей, его необходимо изменить, чтобы он соответствовал этим размерам, сохраняя свои пропорции.
Сейчас у меня есть следующее:
.imageResizeAccountInfo
{
height: auto;
width: auto;
max-width: 25px;
overflow: hidden;
}
Это правильный способ добиться того, что я ищу?
если вам нужно изменить размер изображения не более 25x25 пикселей и сохранить соотношение сторон, вам нужно только установить
img {
max-width: 25px;
max-height: 25px;
}
есть три случая: квадрат изображения будет изменен до 25x25, портретное изображение будет изменено до значения × 25, а ландшафтное изображение будет изменено до 25xsomething (с чем-то меньше или равным 25)
возможно, я действительно не понимаю этот вопрос, потому что все остальные ответы кажутся слишком сложными для изменения размера
обратите внимание, что max-width и max-height не поддерживаются более старыми версиями
Вы можете использовать в css:
background-image: url("path/image.jpg")
background-size: contain;
Используйте это руководство для поддержания пропорций. Я использую его все время для фотографий и видеороликов (делает youtube видео супер простым для изменения размера).
Примечание. Это будет работать, только если вы заранее знаете соотношение сторон изображения или добавили некоторую логику для его определения. Если вы хотите что-то обрабатывать любое изображение, которое приходит, не зная размеров, это не сработает.
С похожим HTML
<div class='imageResizeAccountInfo'>
<div class='content'>Aspect ratio of 1:1</div>
</div>
Добавить этот CSS
.imageResizeAccountInfo{
position: relative;
width: 100%;
}
.imageResizeAccountInfo:before{
content: "";
display: block;
padding-top: 100%; /* initial ratio of 1:1*/
}
.content{
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
И некоторые дополнительные CSS для настройки
/* Other ratios */
.ratio2_1:before{
padding-top: 50%;
}
.ratio1_2:before{
padding-top: 200%;
}
.ratio4_3:before{
padding-top: 75%;
}
.ratio16_9:before{
padding-top: 56.25%;
}
Это всегда даст вам изображение шириной 25 пикселей с высотой, которая пропорциональна любому изменению размера, которое было сделано. Если вы хотите программно решить, нужно ли изменять высоту или ширину, вы можете сделать это с помощью javascript.
Могу ли я предложить использовать:
background-image: url('yourimage.jpg');
&
background-size: contain;
Который будет содержать фотографию для нее родительской высоты и ширины.