CSS背景圖片自適應、全屏、填充、拉伸
阿新 • • 發佈:2019-02-15
方法一、
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 > |
方法二、
全瀏覽器相容:
- .bg{
- background:url(http://wyz.67ge.com/wp-content/uploads/qzlogo.jpg);
- filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale')"
- -moz-background-size:100%100%;
- background-size:100%100%;
- }
總結:
做響應式佈局的時候,如果有背景圖,我們當然希望他能夠全屏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');
}