写在前面

我们都知道,页面的布局分为静态布局和响应式布局,为什么响应式布局很火呢?因为在过去我们在处理不用终端之间的页面布局问题的时候,都是使用好几套代码来实现,举例子来说,假设我们做一个app或者web应用,那么我们必须要面对的一个问题是用户使用什么终端访问?如果是PC,我们需要用960PX-1204PX的布局方式来写,那么如果用户使用ipad呢?768-1024px,使用手机呢?再分的细一点,如果用户使用的是ipadmini还是pro还是air呢?当这些问题通通出现的时候,我们会发现,我们之前解决问题的办法已经达不到现实的要求了,怎么办呢?响应式的布局就出现了!那么我们今天其实不是要讲怎么实现响应式的布局,等到我总结完毕的时候,我会写一个详细的教程出来,今天我们简单的讲一下响应式布局中的图片处理问题。

示意图

我们拿一张比较大的图片和一张比较小的图片来做例子,首先是一张比较大的图片,我用我公司地址的一张俯瞰图(我在杭州滨江,喜欢交朋友,距离近的可以找我玩,我请客,哈哈!):

再用一张比较小的图片:

我先说一下我们平常怎么处理的

我们一般写一个div或者是别的元素,准备将一张图片作为背景图的时候,我们会这样写:

css源码:

.test1{height: 40rem;width: 30rem;background-image: url(img/slide3.png);}

H5源码:

<div class="test1"></div>

对吧,这是最普遍的一种做法, 不做任何的处理,效果是怎么样的呢?

图片变形,当然还有很多的时候图片会出现失真的情况,所以基于这些问题,我们怎么简单的处理一下:

首先我们简单的做几个例子:实现一个这样的效果:

手机端实现这样的效果:

ok,实现这样的其实就是基本可以满足我们的需求,可以根据自己的定义的大小来铺满同时图片不变形,我们看源码:

css源码:

div img{max-width: 100%;height: auto;}

H5源码:

<div id="" style="width: 5rem;height: 100%;"><img src="img/slide3.png" ></div><div id="" style="width: 20rem;height: 100%;"><img src="img/slide3.png" ></div><div id="" style="width: 35rem;height: 100%;"><img src="img/slide3.png" ></div><div id="" style="width: 40rem;height: 40rem;"><img src="img/slide3.png" ></div>

有人看过源码会说了,这不是耍人吗?其实不是的,最简单的适应就是这样的,这也是最简单的一种处理办法,有人说了,有的时候我们需要的是将一个logo铺满是不是也是可以的,logo的处理可以这样:

假设这是一个logo:

那么实现这种效果其实也很简单:

css源码:

.logo{ display:block;width:100%;height:40px;text-indent:55rem;background-image: url(img/slide3.png);background-repeat:no-repeat;background-size:100% 100%;}

H5源码

<div class="logo" style="width: 7rem;"></div>

这里简单的解释一下:

background-size是css3的新属性,用于设置背景图片的大小,有两个可选值,第一个值用于指定背景图的width,第2个值用于指定背景图的height,如果只指定一个值,那么另一个值默认为auto。
background-size:cover; 等比扩展图片来填满元素
background-size:contain; 等比缩小图片来适应元素的尺寸

注意事项

下面讲一下用的时候需要注意的几个地方:

第一:

如果您的代码是这样的:

<div id="" style="width: 5rem;height: 4rem;"><img src="img/slide3.png" ></div><div id="" style="width: 20rem;height: 15rem;"><img src="img/slide3.png" ></div><div id="" style="width: 35rem;height: 20rem;"><img src="img/slide3.png" ></div><div id="" style="width: 40rem;height: 40rem;"><img src="img/slide3.png" ></div>

效果会是这样:

可以看出来和之前的区别是中间的空间变得很大,这是为什么呢?因为我们使用具体的数值+rem的时候,他会将布局的空间展示为那么大,那么我们的style里面已经设置好的是height为auto,什么意思呢?就是css为什么保证图片不会变形,还要不失真,只能将图片等比缩放,那么等比缩放的时候就意味着有一些地方是不会出现图片的,所以只能是空白来填充!那么怎么解决这样的问题呢?我们可以不设置高度,或者设置的时候将高度用百分比表示就行了!

第二:

我们使用比较小的图片的时候,我们设置一个比较大的宽度的时候,图片是没办法完全填充的,举个例子:

<div id="" style="width: 5rem;height: 100%;"><img src="img/slide1.jpg" ></div><div id="" style="width: 20rem;height: 100%;"><img src="img/slide1.jpg" ></div><div id="" style="width: 35rem;height: 100%;"><img src="img/slide1.jpg" ></div><div id="" style="width: 70rem;height: 40rem;"><img src="img/slide1.jpg" ></div>

效果:

这是之前的比较小的图片,认真的可以发现我们最后一张是和之前的一张的宽度一样的,那么其实我们设置的时候不是的,我们写的是70rem的宽度,为什么会出现这样的情况呢?是因为我们在设置一个比原图宽度还要宽的数值的时候,图片会出现失真的情况,为了避免这样的情况出现,所以他会显示原图的大小,而不会变化的很大!

最后关于rem的使用我们可以看一下这个人的博客:

怎么使用rem

关于不同终端的尺寸问题,可以查看这个网址:

不同终端屏幕尺寸展示

ok,今天写的比较仓促,写的可能有一些不是很清晰,有什么不明白的可以直接博主简介那里QQ联系我,或者直接扫我的名片联系我,能帮的我尽力帮!共同进步!

 谢谢阅读

我的名片:

H5页面布局之图片液态化(自适应)处理简述相关推荐

  1. h5页面转png图片_HTML、H5、web转图片image的几种方法总结

    在即将跨入到2019年时,我接到了一个需求,我们的APP新增了一个分享功能,这个分享功能需要把嵌入在APP里的H5页面转换成图片分享出去. 我们的实现思路是: 用户点击分享按钮时,调用API,将当前页 ...

  2. vue 签署文件两张图合并成一张图 h5页面转换成图片并长按保存在本地

    在做让用户在页面签名并把当前页面保存为图片,附上完整代码 (直接复制代码,更改接口地址或删除接口逻辑可直接复用) **准备工作:安装   npm install vue-esign --save 全局 ...

  3. 安卓下设置系统字体大小影响H5页面布局

    问题描述: 调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉 问题分析: 因为用户调整了系统字体的大小,修改了根节点和body节点的font-siz ...

  4. android如何在登录界面嵌入图片,Android内嵌H5页面调用手机图片操作

    我们在APP中有一个功能是引导商家入驻我们平台,商家入驻就需要填写一些企业信息和上传营业执照或宣传照片等.为了考虑到方便及兼容性问题,我们产品就考虑用H5开发这个功能,然后内嵌到APP中,刚开始我们A ...

  5. H5页面保存base64图片到本地

    保存base64图片到本地 H5页面与APP端.小程序端有所不同,其没有操作本地文件的权限,因此保存图片功能需要"下载"来支持. 一般我们通过canvas等功能生成的图片都是bas ...

  6. 解决部分安卓机 自带浏览器 上h5页面 rem布局 受到 真机字体影响的问题

    背景 最近有个 h5项目 由于真机(部分安卓手机)将字体调大 导致 h5 页面布局发生了错误 原因 影响了 内置 webview html 上 font-size 大小 (设置的大小 与 实际显示的 ...

  7. jQuery实现等比例缩放大图片让大图片自适应页面布局

    在布局页面时,有时会遇到大图片将页面容器"撑破"的情况,尤其是加载外链图片(通常是通过采集的外站的图片).那么本文将为您讲述使用jQuery如何按比例缩放大图片,让大图片自适应页面 ...

  8. 微信H5开发之页面布局

    随着微信用户数量超过 10 亿,作为 web 开发者,微信很多时候已经成为了我们 web 页面的载体,我们制作的页面几乎都会在微信上面展示和传播.于是,在开发过程中,如何去兼容微信,就成为了一个 we ...

  9. h5页面的写法_H5如何布局?这个才是入门篇…

    saying: 1.感谢基友K,给了很多温馨提示.想叫他Lee吧,很尴尬,那我该叫什么?本家的痛. 2.感谢工作.活很多,自己也下海了.很多年前就接触H5了,一直没什么机会深挖.这次做了个移动端的网站 ...

最新文章

  1. div模拟textarea文本域轻松实现高度自适应——张鑫旭
  2. NLP - 15 分钟搭建中文文本分类模型
  3. [导入]我翻译的JavaScript文章
  4. python散点图最多能画几个点_Python的散点图竟然能画这么好看
  5. 课后作业:情境二:数据类型与运算符 3、运算符及表达式
  6. c语言数据类型、运算符和表达式
  7. java jtextfield 输入_【java】JTextField与JComboBox结合动态匹配输入信息
  8. 奇盾安防监控视频恢复案例
  9. 那些做Android开发必须知道的ADB命令
  10. 王佩丰excel教程笔记(排序 筛选)
  11. ubuntu使用教程
  12. springboot系列(二十七):如何实现word携带图片导出?这你得会|超级详细,建议收藏
  13. 神州数码基础知识配置总结
  14. BUUCTF Quoted-printable编码
  15. 各类文件头及其十六进制标识
  16. windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
  17. Android实现打电话,发短信
  18. 【强档推荐】网球王子高清桌面壁纸
  19. Hadoop命令大全
  20. left join on详解

热门文章

  1. 查询数据库中的重复记录
  2. Android Telephony Call分析
  3. ad中计算机用户密码,AD用户密码修改记录问题
  4. 5 大 DevOps 工具,看看你用过几个?
  5. du 查看使用 linux命令,Linux命令(17)du 查看文件和目录磁盘使用情况
  6. 华为云IoT智慧物流案例05 | QT应用开发
  7. 安装nginx-kafka插件ngx_kafka_module笔记
  8. JQuery、JavaScript获取文本值
  9. C# Cookie跨域实例
  10. 一分钟教你知道乐观锁和悲观锁的区别