背景图片自适应屏幕宽高解决方案

CSS/设计
410
0
0
2022-04-19

背景图片自适应屏幕宽高解决方案

一般来说,我们在做banner切换的时候,经常用背景来代替插入img图片 ,但是图片有很好的伸缩性,但是插入背景却没有 ,如果能够让banner切换是背景图又能自适应屏幕宽高呢? 其实有办法可以解决 ,用padding-bottom 可以解决。

我想起切版网几个月前给客户做的仿国外网站的web前端外包项目,刚好就用到了padding-bottom, 而它的原理很简单:

因为垂直方向的padding值,根据宽度的大小来计算的。

方法如下:

<style>
    .wrap{
        width: 100%;
    }
    .banner{
        width: 100%;
        max-width: 490px; /**图片的宽度不大于图片实际像素**/ 
        height: 0;
        max-height: 329px;
        padding-bottom: 67.14%; /**根据图片高宽比计算*/ 
        margin: 0 auto;
        background: url("images/test.jpg") no-repeat center;
        background-size: cover;
    }
    @media only screen and (min-width: 490px) {
        /**屏幕大于490时,将背景框高度设置为图片高度的实际像素**/
        .banner{
            height: 329px;
            padding-bottom: 0;
        }
    }
</style>
<div class="wrap"> 
    <!--role属性 aria-label属性增强html的可读性,更语义化--> 
    <div role="img" aria-label="banner img" class="banner"></div>
</div>