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;

上面這句的意思就是圖片的位置,居中,靠左對齊

 
        
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM