cssはボックスの縦横比を固定に設定し、高さは幅に応じて変化します

最初の方法: css 属性: aspect-ratio - ボックスのアスペクト比。

1) 属性値は 1、1.2、0.2、1/2、3/2、2.2/3.2 です。

2) もちろん、計算を含めることもできます (余分に含める必要はありません)。

3) パーセンテージは設定できないことに注意してください。calc でラップしても役に立ちません

この属性も比較的簡単に使用できます

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .test-box{
    
    
        	width: 100%;
            aspect-ratio: 8/1;
            background: red;
        }
    </style>
</head>
<body>
    <div class="test-box"></div>
</body>
</html>

この属性はレスポンシブにも使用できます

/* 最小宽高比 */
@media (min-aspect-ratio: 8/5) {
    
    
  div {
    
    
    background: #9af; /* blue */
  }
}

/* 最大宽高比 */
@media (max-aspect-ratio: 3/2) {
    
    
  div {
    
    
    background: #9ff;  /* cyan */
  }
}

/* 明确的宽高比, 放在最下部防止同时满足条件时的覆盖*/
@media (aspect-ratio: 1/1) {
    
    
  div {
    
    
    background: #f9a; /* red */
  }
}

优点:
用着简单方便,不会增加多余dom
缺点:
兼容性比较差,除非你们不考虑老一点的版本;比如google浏览器版本要100+版本才支持,80就不支持

ここに画像の説明を挿入

2 番目の方法: パディングを使用してボックスを開きます。原則: パディングの設定パーセンテージはボックスの幅に基づいて計算されます。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .test-box-container{
    
    
            position: relative;
            padding-top: 40%;
            width: 100%;
        }
        .test-box{
    
    
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: red;
        }
    </style>
</head>
<body>
    <div class="test-box-container">
        <div class="test-box">
    
        </div>
    </div>
</body>
</html>

优点:
没有啥兼容问题,可以放心使用
缺点:
每用一次就会添加一个冗余的dom盒子

おすすめ

転載: blog.csdn.net/weixin_44441196/article/details/124339024