需要形容

页面中有一个图片,页面宽度变小(比方关上控制台,拖动边栏),图片宽高,要随之等比例自适应缩放,如下效果图

效果图

实现计划

  • 计划一:应用宽度百分比和vw
  • 计划二:宽度百分比加高度被padding-top撑开
  • 计划三:搭配伪元素

间接上代码,复制粘贴即可应用

计划一:应用宽度百分比和vw

<!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>        .adapt {            width: 36%;            height: 36vw;            background-color: pink;        }        img {            width: 100%;            height: 100%;        }    </style></head><body>    <div class="adapt">        <img src="http://ashuai.work/static/img/avantar.png">    </div></body></html>

计划二:宽度百分比加高度被padding-top撑开

<!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>        .adapt {            width: 36%;            height: 0;            padding-top: 36%;            background: pink;            position: relative;        }        img {            width: 100%;            position: absolute;            top: 0;            left: 0;        }    </style></head><body>    <div class="adapt">        <img src="http://ashuai.work/static/img/avantar.png">    </div></body></html>

计划三:搭配伪元素

<!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>        .adapt {            width: 36%;            overflow: hidden;            background: pink;            position: relative;        }        .adapt::after {            content: '';            display: block;            margin-top: 100%;        }        img {            width: 100%;            position: absolute;            top: 0;            left: 0;        }    </style></head><body>    <div class="adapt">        <img src="http://ashuai.work/static/img/avantar.png">    </div></body></html>
A good memory is better than a bad pen. Write it down...