2个属性用CSS实现图片自适应浏览器

1.创建设置图片的div

<div class="img-wrapper"></div>

2.设置其样式

设计原因:

  1. 开发中图片为固定大小,计算宽和高的比例即是padding-bottom的值
  2. 背景图不受内边距的影响,它会充满整个盒子(内容区+内边距)
  3. 由于第2条,索性让它充满整个盒子

设置三个属性即可

  1. 设置与父元素宽度的百分比下内边距
  2. 加载图片
  3. 背景图填充满整个区域
.img-wrapper {
            /*默认宽度是100%
            默认高度是靠元素支撑起来的*/
            /*width: 100%;*/
            /*height: 0;*/
            /*与父元素的%比*/
            padding-bottom: 10.21%;
            background-image: url('图片的地址');
            /*图片不重复出现*/
            /*background-repeat: no-repeat;*/
            background-size: 100% 100%;
        }

代码中注释的属性可以加上去,更加确保万无一失,不加的话,目前测试还没有bug。

3.效果图

原始大小:
在这里插入图片描述
缩小后:
在这里插入图片描述

4.源代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            /*设置body属性没有外边距*/
            margin: 0;
        }
        .img-wrapper {
            /*默认宽度是100%
            默认高度是靠元素支撑起来的*/
            /*width: 100%;*/
            /*height: 0;*/
            /*与父元素的%比*/
            padding-bottom: 10.21%;
            background-image: url('https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/c3b86ede4dd31d7c126d56fbdde4f855.jpg?thumb=1&w=1533&h=150&f=webp&q=90');
            /*background-repeat: no-repeat;*/
            background-size: 100% 100%;
        }
    </style>
</head>
<body>
    <div class="img-wrapper"></div>
</body>
</html>

5. 真实案例分析

5.1 案例现状

在这里插入图片描述
由图可以看出,小米官网的图片并不是随着页面的变化进行自适应的,于是请看源代码

5.2 代码整改

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            /*设置body属性没有外边距*/
            margin: 0;
        }
        .item{
            width: 1226px;
            height: 120px;
            margin: 0 auto;
        }
        .img-wrapper {
            /*默认宽度是100%
            默认高度是靠元素支撑起来的*/
            /*width: 100%;*/
            /*height: 0;*/
            /*与父元素的%比*/
            padding-bottom: 10.21%;
            background-image: url('https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/c3b86ede4dd31d7c126d56fbdde4f855.jpg?thumb=1&w=1533&h=150&f=webp&q=90');
            /*background-repeat: no-repeat;*/
            background-size: 100% 100%;
        }
    </style>
</head>
<body>
<div class="item">
<div class="img-wrapper"></div>
</div>
</body>
</html>

5.3 实现后的效果

在这里插入图片描述
总的来说多看看源代码,生活中多留意一下,你会发现不一样的世界。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中提到了一个问题,即页面不能滑动。为了解决这个问题,根据浏览器类型进行了不同的处理。如果是火狐浏览器,将body隐藏并允许html滑动;如果是其他谷歌浏览器,将body允许滑动并使html可见。这是通过设置overflow属性实现的。 引用\[2\]中提到了如何在现有项目中进行自适应。其中使用了zoom属性来控制页面的缩放,但是火狐浏览器不支持zoom属性。因此,使用了css的transform属性来进行页面的放大缩小,并通过设置transform-origin属性来指定缩放的基准点。 引用\[3\]中提到了一个问题,即页面底部出现了空白。为了解决这个问题,需要获取缩放元素的实际高度,并将其设置为body的高度。这是通过获取元素的边界框高度来实现的。 综上所述,可以使用overflow属性来控制页面的滑动,使用transform属性来进行页面的自适应缩放,并使用getBoundingClientRect方法来获取元素的实际高度来解决页面自适应的问题。 #### 引用[.reference_title] - *1* *2* *3* [【一套px的css样式自适应浏览器大小,transform解决方案】](https://blog.csdn.net/lztry_/article/details/124879781)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值