码迷,mamicode.com
首页 > 其他好文 > 详细

图片加载防止窗口抖动,又可以等比例缩放

时间:2018-08-05 22:34:34      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:tom   pre   back   XML   提前   jpg   bottom   手机   缩放   

由于html加载最后才会加载图片,所以如果没有提前设置高度的话,就会出现窗口抖动,用户体验很不好.
如果固定死高度的话,又不能于宽等比例缩放。
 
解决办法:
已知原图的宽高比例
例如:此图宽500,高321,高/宽为64.2%
技术分享图片
方法一:
不考虑兼容性(即手机端开发):
直接设置height: 64.2vw;,意思是高度设置为视窗宽度的64.2%
<style>
.img-content{
width: 100%;
height: 64.2vw;
overflow: hidden;
}
img{
width: 100%;
}
</style>
</head>
<body>
<div class="img-content">
<img src="./hai.jpg" alt="">
</div>
<div>text</div>
</body>

 

 
方法二
.img-content{
width: 100%;
height: 0;
overflow: hidden;
padding-bottom: 64.2%;
}
img{
width: 100%;
}
</style>
</head>
<body>
<div class="img-content">
<img src="./hai.jpg" alt="">
</div>
<div>text</div>
</body>

由于padding的大小是根据父级元素的宽来规定大小,所以上面设置padding-bottom为64.5%是相对于整个body宽度(100%),又因为默认box-sizing为content-box,所以宽高是元素本身的宽高,设置了高度为零,高度就由padding-bottom撑开。

题外:

由第二种方法可以联想到我们要做一个正方形,要怎么实现

 width: 30%;padding-top: 30%;height: 0;
width的比例等于padding-top的比例即可
 
 

图片加载防止窗口抖动,又可以等比例缩放

标签:tom   pre   back   XML   提前   jpg   bottom   手机   缩放   

原文地址:https://www.cnblogs.com/echo-hui/p/9427396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!