Возможно ли реализовать следующую логику usic HTML и CSS?
width: 100%;
height: 30% of width;
Что я хочу реализовать: Если я уменьшу ширину, высота также уменьшится пропорционально.
Возможно ли реализовать следующую логику usic HTML и CSS?
width: 100%;
height: 30% of width;
Что я хочу реализовать: Если я уменьшу ширину, высота также уменьшится пропорционально.
Это может быть достигнуто путем предоставления элемента height:0
и padding-bottom:30%
.
Во всех браузерах, когда заполнение указано в%, оно вычисляется относительно ширины родительского элемента. Это может быть очень полезной функцией для адаптивного дизайна.
.content {
width: 100%;
height: 0;
padding-bottom: 30%;
}
...
<div class="content"></div>
Если возникают проблемы с использованием элемента 0-height, demo также имеет зеленый квадрат, который реализован с использованием элемента обертки и абсолютной позиции. Не уверен, есть ли какие-либо преимущества для этого подхода.
.wrapper {
position: relative;
width: 100%;
padding-bottom: 30%;
}
.wrapper .content {
position: absolute;
width: 100%;
height: 100%;
}
...
<div class="wrapper">
<div class="content"></div>
</div>
Теперь это возможно для современных браузеров с vw
и vh
единицами:
width: 100vw;
height: 30vw; /* 30% of width */
Поддержка браузера: http://caniuse.com/#feat=viewport-units
Да!
Также с помощью JQuery вы можете сделать:
$(window).ready(function () {
var ratio = 3 / 10, $div = $('#my_proportional_div');
$div.height($div.width() * ratio);
$(window).bind('resize', function() { $div.height($div.width() * ratio); });
});
поскольку предлагаемое решение Padding% не работает с max/min-width
и max-min height
.