あなたがしたいことをあなたが尋ねたことを理解しました CSS
特定の解決策アスペクト比を維持するには、高さを目的のアスペクト比で割る必要があります。16:9 = 1.777777777778。
コンテナの正しい高さを取得するには、現在の幅を1.777777777778で除算する必要があります。width
だけではコンテナのチェックができない、CSS
またはパーセンテージで除算することができないのでCSS
、これなしでは不可能です。JavaScript
(私の知るです。
目的のアスペクト比を維持する作業スクリプトを作成しました。
HTML
<div id="aspectRatio"></div>
CSS
body { width: 100%; height: 100%; padding: 0; margin: 0; }
#aspectRatio { background: #ff6a00; }
JavaScript
window.onload = function () {
//Let's create a function that will scale an element with the desired ratio
//Specify the element id, desired width, and height
function keepAspectRatio(id, width, height) {
var aspectRatioDiv = document.getElementById(id);
aspectRatioDiv.style.width = window.innerWidth;
aspectRatioDiv.style.height = (window.innerWidth / (width / height)) + "px";
}
//run the function when the window loads
keepAspectRatio("aspectRatio", 16, 9);
//run the function every time the window is resized
window.onresize = function (event) {
keepAspectRatio("aspectRatio", 16, 9);
}
}
を使用function
して別の比率で別の何かを表示したい場合は、もう一度使用できます
keepAspectRatio(id, width, height);
position: relative (default) height: 0 padding-<top/bottom>: H/W*100%