要素の周囲にマージンの割合を、ビューポートが小さい場合はビューポート幅の 5%、ビューポートが大きい場合はビューポート幅の 15% に設定したいと考えています。
メディア クエリを使用して、次のようにマージンの値を切り替えることができます:
リーリーただし、ウィンドウ サイズが変更されたときに、ある値から別の値に急激に変化するのではなく、パーセンテージ間のスムーズな移行が必要です。
次のようなものがうまくいくかもしれないと思います:
リーリーこれにより、マージンをマージン間の変化のパーセンテージに設定することで、理論的にはマージン値の変化が滑らかになるはずです。
たとえば、ビューポートが小さい場合: min-margin [マージンの変更] * 0
、ビューポートが中サイズの場合: min-margin [マージンの変更] * 0.5
、ビューポートが大きい場合: min-margin [マージン変更] * 1
しかし、calc 関数は 10px / 20px
のような値を 0.5 などの小数として直接返さないため、実際には機能しません。代わりに、0.5 ピクセルを返します。また、15% * 0.5 ピクセルは不当であり、マージンがデフォルト値の 0 に戻ってしまいます。
もしかしたら、私は間違った方向に進んでいるかもしれません。ご協力をいただければ幸いです。
P粉5117495372023-09-13 17:24:14
私のコメントをフォローしてください
calc(..)
では、計算の項が正当であることを確認する必要があります。割り算と掛け算には特に注意してください。 %
) を使用すると、ビューポート サイズ単位 (vh、vw、vmin、vmax #) の結果がピクセル単位 (
px) で生成されることを認識する必要があります。 ##) とその派生ユニットも同様です。
(var(--max-margin) - var(--min-margin)) は、サイズ
%## のため、ピクセル単位を生成します #Convertピクセル結果に。
2 番目の項
もピクセル単位で値を生成するため、ピクセルごとに乗算することになります。
Cookie を Cookie で増やすことはできません。
線形方程式の
点-勾配形式y=mx b は、現在のビューポート サイズに対する 任意の サイズを計算するのに最適です。これは、最低点と最高点の座標を (x1,y1) および (x2,y2) として使用して、XY チャート上に線を描くのと似ています。
低点 (または座標) = 低いビューポート サイズで必要なマージン サイズ =: y - y1 = m(x - x1)
低い点については、任意の便利なビューポート サイズを選択し、
5% を使用してそのサイズのマージンを計算できます。ビューポート幅 400px
を使用したところ、0.05 * 400 = 20
が得られました。これで、値 (400,20)
を持つ最小値 (x1,y1) が得られます。
ビューポートのマージンは
より広く、15%
が必要なので、最高点を見つけるのは簡単です。 0.15 * 800 = 120
であるため、最高点 (x2,y2)
は (800,120) になります。
ここでは、上記の式に値を入力するだけで (適切な
変換を使用して)、次のように簡略化します。
=>
margin = 20px 100 / 400 * (100vw - 400px)=>
マージン = 20px 0.25 * (100vw - 400px)
最終結果を 15% の間に制限したいと考えています。
最終結果を取得するには、CSS の clamp
関数を使用する必要があります。 :
#コード スニペットちなみに、最終結果の
傾き切片形式(y = mx b)は、25vw - 80pxです。
リーリー
リーリー