需求描述
页面中有一个图片,页面宽度变小(比如打开控制台,拖动边栏),图片宽高,要随之等比例自适应缩放,如下效果图
效果图
实现方案
- 方案一:使用宽度百分比和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>
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!A good memory is better than a bad pen. Write it down...