移动端背景图片适配
2018-12-23
前言
俗话说“一图胜千言”。文字当然是一个网页不可或缺的部分,但图片在网络传输和信息交流中也起到了十分重要的作用。
巧妙地在网页中使用图片不仅能更好的表达我们的意思,而且还能为网页增踩不少。网页支持多种图片格式,而且可以对插入的图片设置宽度和高度。
图片布局
图片直接使用作为背景层,上层元素使用css position: absolute;图片作为背景层 如下图:

使用css属性background:url();background-size:100% 100%。背景图填充。如果元素的宽高不确定 ,
会出现图片拉伸、变形 跟设计稿不符使用 媒体查询调整一种是是结合百分比或flex布局,对特定的模块在特定的屏幕宽度范围内做调整
另一种是结合rem, 对不同屏幕宽度范围内的设备设置不同的rem参照字体大小
html{font-size:10px}
@media screen and (min-width:321px) and (max-width:375px){html{font-size:11px}}
@media screen and (min-width:376px) and (max-width:414px){html{font-size:12px}}
@media screen and (min-width:415px) and (max-width:639px){html{font-size:15px}}
@media screen and (min-width:640px) and (max-width:719px){html{font-size:20px}}
@media screen and (min-width:720px) and (max-width:749px){html{font-size:22.5px}}
@media screen and (min-width:750px) and (max-width:799px){html{font-size:23.5px}}
@media screen and (min-width:800px){html{font-size:25px}}
缺点:
无法完全适配Android设备各种屏幕,无法保证显示的一致性,
如:定义了一个模块的高度在 321 至 375下是40px,那么一个模块在这个范围的屏幕中显示就是40px,而不能随屏幕大小而变化。- 使用js 根据屏幕大小来控制背景图片的显示 原理跟媒体查询相似
- CSS百分比padding与宽度自适应图片布局
在默认的水平文档流方向下,CSS margin和padding属性的垂直方向的百分比值都是相对于宽度计算的,这个和top, bottom等属性的百分比值不一样。1
2
3<div class="banner">
<img src=""banner.jpg>
</div>
.banner元素同样负责控制比例,然后图片填充.banner元素即可,CSS代码如下:1
2
3
4
5
6
7
8
9.banner {
padding: 15.15% 0 0;
position: relative;
}
.banner > img {
position: absolute;
width: 100%; height: 100%;
left: 0; top: 0;
}