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

 

在网上搜了好多demo:可总有这样那样的一些小瑕疵,试过几次后发现这样效果是最好的

html:  

  <div class='bg'>

    <img src="image/bk02.jpg" alt="">
 </div>
<h1>这是一个DEMO</h1>

CSS:
html,body{overflow: hidden;}
.bg{
width: 100%;
height: 100%;
top:0;
left: 0;
z-index: -10;
position: absolute;
background-size: cover;
-webkit-background-size: cover;
-o-background-size: cover;
background-repeat: no-repeat;
}
.bg img{display: block;outline: none;border:0;height: 100%;width: 100%;
}
h1{
color:#C2602C;
text-align: center;
}

下面这些解释是复制粘贴的,与我自己的代码有些出入大部分解释还是有的:来源作者:汤利利 http://www.jianshu.com/p/5480cd1a5d89

下面,我们来分析一下,css中每句代码的作用是什么:

  position:fixed;
  top: 0;
  left: 0;

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

  width:100%;
  height:100%;
  min-width: 1000px;

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

  z-index:-10;

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

zoom: 1;

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

background-repeat: no-repeat;

上面这个是背景不要重复

  background-size: cover;
  -webkit-background-size: cover;
  -o-background-size: cover;

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

  background-position: center 0;

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


 
posted @ 2017-10-27 17:59  云端观云  阅读(3397)  评论(0编辑  收藏  举报