css给未知宽高的元素添加背景图片

简介:

给页面的某一元素添加背景图片,当没有指定具体的宽高时,是无法显示效果的

1、添加背景图

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
< html >
< head  lang = "en" >
     < meta  charset = "UTF-8" >
     < meta  name = "viewport"  content = "width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     < meta  name = "format-detection"  content = "telephone=no" />
     < meta  name = "format-detection"  content = "email=no" />
     < title ></ title >
     < style >
         *{margin:0; padding:0;}
         #wrap{
             width:100%;
             height:auto;
             background:url('images/page.jpg') no-repeat center center;
             background-size:cover;
         }
     </ style >
</ head >
< body >
     < div  id = "wrap" >
     </ div >
</ body >
</ html >


我们可以看看页面效果截图:

wKioL1f9ylvzmxMTAADJxXOldE8339.png


为了达到适应不同终端的屏幕大小,我们又不能把宽高写死,那怎么办呢?可以采取以下方法:

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
< html >
< head  lang = "en" >
     < meta  charset = "UTF-8" >
     < meta  name = "viewport"  content = "width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     < meta  name = "format-detection"  content = "telephone=no" />
     < meta  name = "format-detection"  content = "email=no" />
     < title ></ title >
     < style >
         *{margin:0; padding:0;}
         #wrap{
             width:100%;
             height:100%;
             background:url('images/page-small.jpg') no-repeat;
             background-size:cover;
             position:fixed;
             z-index:-10;
             background-position:0 0;
         }
     </ style >
</ head >
< body >
     < div  id = "wrap" >
     </ div >
</ body >
</ html >


再来看看页面效果:

wKiom1f9zCPiOQU2AAZSjvpld9s826.png

手机页面效果

wKioL1gAdVKiVYgjABPuRb-IXBM080.png


注意:如果去掉div,直接把样式加在body上面的话,在PC端浏览器可以显示,安卓手机里面也可以显示,但是在苹果手机里面就无法显示。多次反复测试,均重现此bug(如有朋友遇到此类问题的正解,欢迎指教!)

wKiom1gAeaXD8UVtAABsRSCHSm0061.png

(上图为苹果机型下的截图)


2、通过img标签添加背景图

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
< html >
< head  lang = "en" >
     < meta  charset = "UTF-8" >
     < meta  name = "viewport"  content = "width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     < meta  name = "format-detection"  content = "telephone=no" />
     < meta  name = "format-detection"  content = "email=no" />
     < title ></ title >
     < style >
         *{margin:0; padding:0;}
     </ style >
</ head >
< body >
     < div  id = "wrap" >
         < img  class = "imgBcground"  src = "images/page-small.jpg"  alt = "" >
     </ div >
</ body >
</ html >


查看页面效果时发现,图片是以百分百实际大小呈现,显然不是我们想要的效果

wKiom1f9znviloL-AAO-QmFQJMM207.png


跟上面的例子很相像,我们只需要稍加修改就好

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
< html >
< head  lang = "en" >
     < meta  charset = "UTF-8" >
     < meta  name = "viewport"  content = "width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     < meta  name = "format-detection"  content = "telephone=no" />
     < meta  name = "format-detection"  content = "email=no" />
     < title ></ title >
     < style >
         *{margin:0; padding:0;}
         .imgBcground{
             display:block;
             width:100%;
             height:100%;
             position:fixed;
             z-index:-10;
         }
     </ style >
</ head >
< body >
     < div  id = "wrap" >
         < img  class = "imgBcground"  src = "images/page-small.jpg"  alt = "" >
     </ div >
</ body >
</ html >


在不同模拟机型下查看页面效果均可以实现:

wKioL1f9zxjiF2ogAAUHsnaVZnQ304.png


关于background-size属性,W3C是这么定义的

wKiom1f90BiRD1xuAAC870PTnOY152.png


具体可以查看链接:http://www.w3school.com.cn/cssref/pr_background-size.asp


本文转自   frwupeng517   51CTO博客,原文链接:http://blog.51cto.com/dapengtalk/1861053
相关文章
|
1月前
|
前端开发 JavaScript
css之伪类hover改变自身、子元素、其他元素的样式
css之伪类hover改变自身、子元素、其他元素的样式
28 0
|
2月前
|
前端开发 JavaScript 开发者
CSS隐藏元素的N种方法,你知道哪一种最适合你?
欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。
|
3月前
|
前端开发 小程序
CSS元素居中大全
CSS元素居中大全
|
4月前
|
前端开发 JavaScript
如何利用jQuery来向一个元素中添加和移除CSS类?
如何利用jQuery来向一个元素中添加和移除CSS类?
31 0
|
5天前
|
XML 前端开发 数据格式
css元素
【4月更文挑战第20天】css元素
13 4
|
8天前
|
前端开发
css中几种隐藏元素的方法
css中几种隐藏元素的方法
11 0
N..
|
30天前
|
前端开发 容器
CSS 网页布局元素
CSS 网页布局元素
N..
23 1
|
1月前
|
前端开发 UED 容器
CSS3美化网页元素
CSS3美化网页元素
10 0
|
1月前
|
移动开发 HTML5
编程笔记 html5&css&js 024 HTML表单元素
编程笔记 html5&css&js 024 HTML表单元素
|
2月前
|
Web App开发 存储 前端开发
【JavaEE初阶】 CSS相关属性,元素显示模式,盒模型,弹性布局,Chrome 调试工具||相关讲解
【JavaEE初阶】 CSS相关属性,元素显示模式,盒模型,弹性布局,Chrome 调试工具||相关讲解