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
相关文章
|
2月前
|
前端开发 JavaScript
如何利用 CSS3 动画实现元素的淡入淡出效果?
在上述代码中,定义了一个名为 `fade-in` 的CSS类,其初始透明度为0,并设置了淡入的过渡效果。当通过JavaScript为元素添加 `active` 类时,元素的透明度变为1,实现淡入效果;当再次点击按钮移除 `active` 类时,元素又会逐渐淡出。通过这种方式,可以根据用户的操作灵活地控制元素的淡入淡出效果。
406 60
|
2月前
|
数据采集 前端开发 JavaScript
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
本文介绍了如何使用 Puppeteer 结合 CSS 选择器抓取动态网页中的关键元素,以亚航网站的特价机票信息为例,通过设置代理 IP、User-Agent 和 Cookie 等技术手段,有效提升爬虫策略,实现高效、稳定的爬取。
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
|
2月前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
76 7
|
3月前
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
30 0
|
3月前
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
57 0
|
3月前
|
前端开发
css 块元素、行内元素、行内块元素相互转换
css 块元素、行内元素、行内块元素相互转换
273 0
|
5月前
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
37 5
|
5月前
|
前端开发
CSS - 使用 clip-path 轻松实现正六边形块状元素
如何使用CSS的`clip-path`属性来创建正六边形的块状元素。文章提供了详细的HTML和CSS代码示例,展示了如何实现六边形的布局和样式,并通过CSS动画增强了视觉效果。最终效果是一个包含文本的可交互的正六边形元素,当鼠标悬停时会改变颜色。
187 0
|
5月前
|
存储 前端开发
为 HTML 元素指定 CSS 样式的方式
【8月更文挑战第24天】
110 0
|
5月前
|
前端开发
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!