当前位置: 首页 > article >正文

移动端设置固定比例的盒子,让图片铺满盒子,并设置默认图片

需求:
因为后端传过来的照片比例是不固定的,所以前端得固定一个统一的比例。
又因为是在移动端所以图片盒子还得适配移动端。
再者因为图片比较多,所以给一个默认图片可以优化用户的体验。
1.固定比例的盒子
2.盒子适配移动端
3.图片铺满盒子
4.默认图片

1.固定比例的盒子&盒子适配移动端

现在需要将一个盒子的尺寸定义为固定比例,且尺寸需根据视图的尺寸来进行缩放,也就是响应式。
test1.gif

有多种方法可以实现这个效果,下面逐一介绍。

1.1 垂直方向的padding

给padding的值设定为百分比时,将根据父容器的宽度来计算。

现在假设我们有一个div,我们希望它的尺寸能根据body(它的父容器)的宽度来实现固定比例:

<div class="box"></div>

样式部分

.box{width:50%;padding-bottom:50%;/*padding-top也可以*/
}

但是我们使用这种方法的时候需要注意几点:

  • 1.不需要设定height,最好就是手动设定为0。
  • 2.子元素需要设定为绝对定位(父容器为相对定位),否则子元素将被padding挤出去。

其它比例
前面实现的是一个正方形比例的,那如果我想要是16:9的呢?
那我们将根据一个公式:width * x / y计算,如下:

.box{width:50%;padding-bottom: calc( 50% * 9 / 16 );/* 或者 */padding-bottom : 28.125%;
}

1.2 视窗单位

视窗是你的浏览器实际显示内容的区域——换句话说是你的不包括工具栏和按钮的网页浏览器。这些单位是vw,vh,vmin和vmax。它们都代表了浏览器(视窗)尺寸的比例和窗口大小调整产生的规模改变。

也就是说,网页的宽度是100vw,取一半就是50vw,无论怎么缩放都是一半,而且这个一半不止可以用在width上。

所以:

<div class="box"></div>
.box{width:50vw;height:50vw;
}

一个正方形就出来了~
其它比例
跟上面一样,通过公式可以得到:

.box{width:50vw;padding-bottom: calc( 50vw * 9 / 16 );/* 或者 */padding-bottom : 28.125vw;
}

2.图片铺满盒子

盒子相对定位,图片绝对定位,宽度100%,就能铺满啦~

  <div class="box"><img src="./img/img.jpg" alt=""></div>
.box{width: 50%;padding-bottom: calc( 50% * 5 / 4 );background-color: coral;position: relative;
}
img{width: 100%;position: absolute;height: 100%;top: 0;left: 0;
}

3.默认图片

给盒子加上背景图片就能搞定!

background:url(./img/default.png) no-repeat center;

test3.gif

完整:

  <div class="box"><img src="./img/img.jpg" alt=""></div>
.box{width: 50%;padding-bottom: calc( 50% * 5 / 4 );background:url(./img/default.png) no-repeat center;position: relative;
}
img{width: 100%;position: absolute;height: 100%;top: 0;left: 0;
}

参考
https://www.jianshu.com/p/bfcca962f95e

http://www.lryc.cn/news/2420730.html

相关文章:

  • 使用ApexSQLLog对SQL Server数据库进行数据恢复
  • NouveauParfum
  • 友思特新品 | 多光谱与高光谱相机:基于随心而定的可调谐滤光片技术
  • 外贸独立站可获取流量的渠道有哪些?外贸网站引流真的那么难吗?- 【飞鱼SEO】
  • MATLAB作图方法与技巧
  • python图像模糊处理_Python图像处理,照片去色、翻转、模糊、缩略图统统搞定
  • 神之浩劫2登不上/连不上/进不去游戏/游戏进不去的解决办法
  • Zookeeper--集群及相关概念
  • 博客 Gif 动态图制作 - 插入gif动态图 GifCam
  • 地图之美(地图制图)
  • 2024年第二十一届 五一杯 (A题)大学生数学建模挑战赛 | 多目标优化问题,深度学习分析 | 数学建模完整代码解析
  • 高数15种常见特殊曲线:星形线、心形线、摆线、对数螺线、双曲螺线、阿基米德螺线、伯努利双纽线、三叶玫瑰线、四叶玫瑰线、六叶玫瑰线、三次抛物线、半立方抛物线、箕舌线、蔓叶线、笛卡儿叶形线、概率曲线
  • 06 Oracle数据是怎么存储的
  • 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘Users‘ 中的标识列插入显式值
  • python之爬虫爬取VIP蔬菜网农产品价格行情(使用requests库 + HTML)
  • 01、java、jdk、jre三者之间的区别与联系(包含java环境 配置)
  • APM —全链路追踪
  • 混合密集网络(Mixture Density Networks)
  • 『现学现忘』Git后悔药 — 34、git commit --amend 命令
  • 安卓开发:安卓应用上架主流平台汇总
  • Linux bind函数详解
  • 华为资深工程师带你了解华为七大根技术
  • FastTrack协议
  • 提升效率!技术宅、学生党必备!大学四年使用的几十个高效工具都在这里了
  • 详解hashcode(hashcode与equals)
  • HttpClient的post和get请求
  • 高版本msado15.dll编译的程序读取access在低版本系统下报错空指针的问题(错误码:0x80004003)
  • 量子计算之pyQpanda入门实践1
  • 短视频分享网站(源码+开题)
  • h3c Vlan和Trunk实验