Есть несколько способов сделать это. В этом примере доступен JavaScript, но для него потребуется родительский элемент. Обратите внимание на следующее ...
<div id="container">
<div id="element"></div>
</div>
#container {
display: inline-block;
position: relative;
width: 100px;
}
#container:after {
content: '';
display: block;
margin-top: 100%;
}
#element {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: dodgerblue;
}
Всякий раз, когда ширина изменяется, так что по высоте, в равной степени. Поставляемая ниже демонстрационная версия при использовании jQuery - это просто простой способ манипулировать шириной элемента.
// -- 100 x 100
$('#container').click(function() {
$(this).width(50); // -- 50 x 50
});
JSFiddle Link - демонстрационная
JSFiddle Link - дополнительный демо - %
основе - (окно вывода изменить размер, чтобы увидеть масштабирование)
Кроме того, в течение короткого и гораздо более простой ответ, используйте vw
единицы. Обратите внимание на следующее ...
<div></div>
div {
width:20vw;
height:20vw;
background-color: dodgerblue;
}
JSFiddle Link - vw
демо
Here порядочный рецензия на vw
и других аналогичных единиц, которые могут представлять интерес
Пожалуйста, добавьте код – Mitul
@ketan это возможно без JS? OP запрашивает помощь только с HTML и CSS. – zer00ne
Вы смогли это решить? Были ли какие-либо предложения, которые могли вам помочь? – scniro