アスペクト比を維持するDIVを含むページがあります。私は、ページ幅が変わったときにテキストサイズを維持するフォントサイズにVWを使用するdiv内にいくつかのテキストを持っています。これは素晴らしいことです。CSS VWとVH - 維持率
しかし、ユーザーがウィンドウの高さを変更した場合、VWとVHが一緒に再生されないため、同じ方法で応答することはできません。
これを動作させるには、CSSまたはJavaScriptのトリッキーな点がありますか?サイト上でユーザーがブラウザのサイズを変更した場合に、即座にオンザフライで対応できますか?ここで
が言われている問題:https://jsfiddle.net/Lp8jynfr/1/
<style>
.page-wrapper{
width: 100vw;
height: 68.60vw; /* height:width ratio = 9/16 = .5625 */
max-height: 100vh;
max-width: 145.7vh; /* 16/9 = 1.778 */
margin: auto;
position: absolute;
top:0;bottom:0; /* vertical center */
left:0;right:0; /* horizontal center */
border: 5px solid #000;
}
.text{
position: absolute;
width:100%;
top:36%;
left:0;
right:0;
font-size: 5.6vw;
color:#2d90db;
text-align:center;
}
</style>
<div class="page-wrapper">
<div class="text">
This is some text I want resized
</div>
</div>
「VWとVHは一緒に遊ばない」とはどういう意味ですか?アスペクト比は常に同じです! – Fantasterei
CSS calcを使用して正しいサイズを計算できます。例えば'width:calc(100vw/1.6)'または 'width:calc(100vw/3vh)'となります。 –
あなたは2つの別々のケースでこれを行う必要があります:1つは高さが制限要因であり、もう1つは幅が制限要因です。サイズ変更ハンドラ(jQueryを使用しているので、https://api.jquery.com/resize/)を使用して、そのクラスに基づいてクラスを更新します。 font-sizeは、あるケースではvwに比例し、もう1つのケースではvhに比例します。 – andi