1. 程式人生 > >CSS背景圖片自適應、全屏、填充、拉伸

CSS背景圖片自適應、全屏、填充、拉伸

方法一、

js控制:

123<div id="formbackground" style="position:absolute; width:100%; height:100%; z-index:-1">  <img src="pictures/background.jpg" height="100%" width="100%"/>  </div>
1234567<div id="formbackground" style="position:absolute; z-index:-1;"><img src="10.jpg" height="100%" width="100%"/></
div><script type="text/javascript">$(function(){$('#formbackground').height($(window).height());$('#formbackground').width($(window).width());});</script>

方法二、

全瀏覽器相容:

  1. .bg{  
  2. background:url(http://wyz.67ge.com/wp-content/uploads/qzlogo.jpg);  
  3. filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale')"
    ;  
  4. -moz-background-size:100%100%;  
  5.     background-size:100%100%;  
  6. }

總結:

做響應式佈局的時候,如果有背景圖,我們當然希望他能夠全屏100%顯示,這樣顯得頁面非常的爆滿,不過這又出現了一個問題,圖片的尺寸多大合適呢,現在的瀏覽器解析度參差不齊,對於Firefox等高階的瀏覽器,使用Background-size設定為100%即可,而IE瀏覽器就需要不同設定。

背景100%填充

在Firefox中,只需要用background-size則可以控制其隨容器的大小而自動伸縮

.picLUp{
    background:url(logo.png) no-repeat;
width:100%; height:40%; background-size:100% 100%; }

在這樣的CSS控制之下,則可以在Firefox中達到背景圖片隨父容器大小而自動變化,達到填充效果,圖片會被拉伸填充,這並不是我們想要的效果,那麼我們可以不設定100%引數,而是使用cover引數。

background-size:cover

設定cover引數以後,背景圖會按比例縮放填充滿整個背景。

針對IE瀏覽器

但是在IE之下,你會發現上面的CSS控制會很不理想,它並不會因為你有了background-size:100% 100%;而自動縮放,圖片原本怎麼樣就怎麼樣顯示,如果容器比圖片小,則只能顯示圖上的一部分,那麼要達到這個效果,則需要使用IE特有的濾鏡。

AlphaImageLoader

AlphaImageLoader相容性在IE5.5+以上版本的瀏覽器上都可以完美執行。

語法

filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )

屬性

  • enabled: 可選項。布林值(Boolean)。設定或檢索濾鏡是否啟用。true | false
  • true: 預設值。濾鏡啟用。
  • false: 濾鏡被禁止。
  • sizingMethod: 可選項。字串(String)。設定或檢索濾鏡作用的物件的圖片在物件容器邊界內的顯示方式。
  • crop: 剪下圖片以適應物件尺寸。
  • image: 預設值。增大或減小物件的尺寸邊界以適應圖片的尺寸。
  • scale: 縮放圖片以適應物件的尺寸邊界。
  • src: 必選項。字串(String)。使用絕對或相對 url 地址指定背景影象。假如忽略此引數,濾鏡將不會作用。

特性

  • Enabled: 可讀寫。布林值(Boolean)。參閱 enabled 屬性。
  • sizingMethod: 可讀寫。字串(String)。參閱 sizingMethod 屬性。
  • src: 可讀寫。字串(String)。參閱 src 屬性。

說明

在物件容器邊界內,在物件的背景和內容之間顯示一張圖片。並提供對此圖片的剪下和改變尺寸的操作。如果載入的是PNG(Portable Network Graphics)格式,則0%-100%的透明度也被提供。

PNG(Portable Network Graphics)格式的圖片的透明度不妨礙你選擇文字。也就是說,你可以選擇顯示在PNG(Portable Network Graphics)格式的圖片完全透明區域後面的內容。

hello{
    width:10%;
    height:50%;
    position:absolute;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='1.jpg',sizingMethod='scale');
}