画面サイズに関係なく、要素の比率(高さから幅)を維持する必要があるレスポンシブデザインを作成しているため、要素のピクセル単位のサイズがわからず、%でしか作業できません.
幅または高さをブラウザ サイズの % として設定できますが、他のプロパティ値を設定する方法がわかりません。
CSS のみを使用して、JS に値を計算させることはオプションではありません。
画面サイズに関係なく、要素の比率(高さから幅)を維持する必要があるレスポンシブデザインを作成しているため、要素のピクセル単位のサイズがわからず、%でしか作業できません.
幅または高さをブラウザ サイズの % として設定できますが、他のプロパティ値を設定する方法がわかりません。
CSS のみを使用して、JS に値を計算させることはオプションではありません。
昨年この問題に遭遇し、退屈な調査の結果、あいまいな解決策を見つけました。残念ながら、これにはラッパー DIV が含まれます。構造は単純です。コンテンツ コンテナーを含む親 DIV と、比率を設定する別の DIV があります。margin-top
親の幅のパーセントとして「プロポーション」DIVを設定します...例:
#parent {
position: relative;
}
.proportions {
margin-top: 75%; /* makes parent height to 75% of it's width (4:3) */
}
.container { /* contents container with 100% width and height of #parent */
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
right: 0px;
}
CSS calc() を使用します https://developer.mozilla.org/en-US/docs/Web/CSS/calc 最新のブラウザーではかなりよく採用されていますhttp://caniuse.com/calcフォールバックとして CSS メディアを使用しますクエリとフォールバックする最小の幅と高さがあります。
明らかに、常に両方のパーセンテージを事前に計算することができます。
Div1 の高さは 60%、幅は高さの 1/4 にする必要があります。60% * .25 = 幅: 15%
div {
position: absolute;
border: 2px solid black
}
#div1 {
width: 40%;
height: calc(40% * 1.2);
}
#div2 {
width: calc(90% / 4);
height: 90%;
}