CSS实现自适应不同大小屏幕的背景大图的两种方法(转自简书)

CSS实现自适应不同大小屏幕的背景大图的两种方法

一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形的背景大图,而且背景图片不会随着滚动条滚动而滚动。

用CSS实现真的很简单很简单,下面我们来看一下第一种方法具体的代码:

HTML代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 6     <title>title</title>
 7 </head>
 8 <body>
 9 <div class="wrapper">
10     <!--背景图片-->
11     <div id="web_bg" style="background-image: url(./img/bg.jpg);"></div>
12     <!--其他代码 ... -->
13 </div>
14 </body>
15 </html>

CSS代码:

 1 #web_bg{
 2   position:fixed;
 3   top: 0;
 4   left: 0;
 5   width:100%;
 6   height:100%;
 7   min-width: 1000px;
 8   z-index:-10;
 9   zoom: 1;
10   background-color: #fff;
11   background-repeat: no-repeat;
12   background-size: cover;
13   -webkit-background-size: cover;
14   -o-background-size: cover;
15   background-position: center 0;
16 }

你看,代码就是这么简单。
下面,我们来分析一下,css中每句代码的作用是什么:

1 position:fixed;
2   top: 0;
3   left: 0;

这三句是让整个div固定在屏幕的最上方和最左方

1   width:100%;
2   height:100%;
3   min-width: 1000px;

上面前两句是让整个div跟屏幕实现一模一样的大小,从而达到全屏效果,而min-width是为了实现让屏幕宽度在1000px以内时,div的大小保持不变,也就是说在这种情况下,缩放屏幕宽度时,图片不要缩放(只有在1000px以内才有效)。

1   z-index:-10;

这个的目的是让整个div在HTML页面中各个层级的下方,正常情况下,第一个创建的层级z-index的值是0,所以如果我们这里写成-1也可以实现,不过这里写-10是确保整个div在最下面,因为如果页面中层级太多了,有的时候用-1不一定在最下面,但如果写成-100这样大数字的也没有什么意义。用index:-10 以此能达到看上去像背景图片,其实是一个最普通的div,只是层级关系变了,才让人看上去看是背景图片。

1 zoom: 1;

这个的目的是为了兼容IE浏览器

1 background-repeat: no-repeat;

上面这个是背景不要重复

1  background-size: cover;
2   -webkit-background-size: cover;
3   -o-background-size: cover;

上面三句是一个意思,就是让图片随屏幕大小同步缩放,但是有部分可能会被裁切,不过不至于会露白,下面两句是为chrome和opera浏览器作兼容。

1   background-position: center 0;

上面这句的意思就是图片的位置,居中,靠左对齐

第二种方法的代码

HTML代码如下:

1 <div class="about-me">
2       ![](./images/about-me.jpg)
3       <a href="http://iheima.com" class="introduction">
4           <h3>About me</h3>
5       </a>
6 </div>

css代码如下:

 1 .about-me {
 2             position: relative;
 3             min-width: 1480px;
 4             width: 100%;
 5             height: 520px;
 6             overflow: hidden;
 7             img.me {
 8                 position: absolute;
 9                 bottom: 0;
10                 left: 0;
11                 width: 100%;
12                 height: auto;
13                 min-height: 520px;
14                 z-index: 0;
15             }
16             .introduction {
17                 display: block;
18                 position: absolute;
19                 left: 0;
20                 bottom: 0;
21                 right: 0;
22                 top: 0;
23                 width: 100%;
24                 height: 100%;
25                 color: #fff;
26                 background: rgba(0, 0, 0, .6);
27                 z-index: 2;
28                 cursor: pointer;
29                 h3 {
30                     margin: 100px auto 140px;
31                     width: 170px;
32                     height: 90px;
33                     line-height: 90px;
34                     font-size: 36px;
35                     border-bottom: 2px solid #0b6d99;
36                 }
37             }
38         }

来自:https://www.jianshu.com/p/5480cd1a5d89

原文地址:https://www.cnblogs.com/zyxsblogs/p/9820928.html

时间: 2024-10-06 00:07:05

CSS实现自适应不同大小屏幕的背景大图的两种方法(转自简书)的相关文章

DISCUZ论坛添加页头及页尾背景图片的几种方法

先给大家分享页头添加背景图片的两种方法: 1. 第一种效果,是给discuz的整体框架添加背景图片,见图示: 添加方法如下:找到你现在使用模板common文件下的header.html文件,在<head></head>部分添加以下代码: <style>body { background-image:url(你的背景图片地址,如http://abc.com/imgs/bg.jpg); background-repeat:no-repeat; background-posi

CSS实现背景图尺寸不随浏览器大小而变化的两种方法

一些网站的首页背景图尺寸不随浏览器缩放而变化,本例使用CSS 实现背景图尺寸不随浏览器缩放而变化,方法一. 把图片作为background,方法二使用img标签.喜欢的朋友可以看看 一些网站的首页背景图尺寸不随浏览器缩放而变化,例如百度个人版的首页,缩放后背景图的尺寸并不改变:  再比如花瓣网( huaban.com ): 现在用CSS来实现这一效果. 首 先需要一张足够大尺寸的图片,上图百度背景图的尺寸为1600*1000px( 图片地址:http://4.su.bdimg.com/skin/

设置背景图片的两种方式,并解决手机端背景图片高度自适应问题

1 设置背景图片的两种方式: 方式一: <img src="../img/10.jpg"/ class="back" id="Background"> .back{ position: fixed; width: 100%; height: 100%; display: block; z-index: -100; } 方式二:div class="body" id="Background">

网页设计制作CSS实现隔行换色两种方法

网页设计制作CSS实现隔行换色两种方法 2007-12-21 20:59:44  来源:网页教学网 网页设计制作,CSS实现隔行换色两种方法: 第一种方法: 以下为引用的内容:<style type="text/css">UL.myul1 LI{}</style><ul class="myul1"><li id="li1">111</li><li id="li2"

HTML中设置背景图的两种方式

HTML中设置背景图的两种方式 1.background    background:url(images/search.png) no-repeat top; 2.background-image    background-image:url(images/search.png):    background-repeat:no-repeat;

css:图标与文字对齐的两种方法

(好久没写博客了,这几个月的积累比较零碎,记在本子上,现在开始整理归类) 在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向对齐为middle, <div> <img src="" class="heart"> <span>1169</span> <img src="" class="comment"

在装完Linux系统之后自己去修改Swap分区的大小(两种方法)

在装完Linux系统之后自己去修改Swap分区的大小(两种方法) 在安装完Linux系统后,swap分区太小怎么办,怎么可以扩大Swap分区呢?有两个办法,一个是从新建立swap分区,一个是增加swap分区.下面介绍这两种方法: 第一您必须有root权限,过程中一定要很小心,一不小心就破坏了整个硬盘的数据,执行下面的过程之前您需要三思而行,错误操作后的后果由执行者自己承担. 新建swap分区 1.以root身份进入控制台,输入 # swapoff -a          #停止交换分区 2. 用

设置一个DIV块固定在屏幕中央(两种方法)

设置一个DIV块固定在屏幕中央(两种方法) 方法一: 对一个div进行以下设置即可实现居中. <style> #a{ position: fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; margin: auto; } </style> <!doctype html> <html lang="zh-cn"> <head> <meta charset="UT

ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)

1 /* 2 这道题如果按照度为0的节点来判断的时候,将度为0的节点和其相连的节点(度数并减去1) 3 从图中去掉,如果度为0的节点的个数为0个但是图中的节点没有都去掉的 时候那么说明 4 出现了回路!用这种方法必须将重边去除掉! 5 6 所以推荐用dfs方式进行判断!这种方式还是比较直观的! 7 */ 8 #include<iostream> 9 #include<cstring> 10 #include<cstdio> 11 #include<algorith