CSS 實現背景圖尺寸不隨瀏覽器縮放而變化,css背景圖

來源:互聯網
上載者:User

CSS 實現背景圖尺寸不隨瀏覽器縮放而變化,css背景圖

<!-- Author:部落格園小dee -->

一些網站的首頁背景圖尺寸不隨瀏覽器縮放而變化,例如百度個人版的首頁,縮放後背景圖的尺寸並不改變:

再比如花瓣網( huaban.com ):

 

現在用CSS來實現這一效果。

首先需要一張足夠大尺寸的圖片,百度背景圖的尺寸為1600*1000px( 圖片地址:http://4.su.bdimg.com/skin/12.jpg?2 );花瓣背景圖的尺寸為1600*1600px( 圖片地址:http://hbfile.b0.upaiyun.com/img/unauth_page/food_bg.jpg );

然後有兩種方法可以達到背景圖不縮放的效果:

方法一. 把圖片作為background

有幾個CSS的屬性要提一下:background-size:cover,這個CSS3的屬性作用是把背景映像擴充至足夠大,以使背景映像完全覆蓋背景地區,背景映像的某些部分也許無法顯示在背景定位地區中,如果不使用這個屬性,在IE11和FireFox中縮放瀏覽器,背景圖片會隨之縮小,同時使用-webkit-background-size: cover和-o-background-size: cover相容webkit核心瀏覽器和Opera瀏覽器;background-attachment屬性設定背景映像是否固定或者隨著頁面的其餘部分滾動,當設定為fixed時頁面的其餘部分滾動時,背景映像不會移動。

 

代碼( 用了百度的星空圖,效果和上面百度的一至 ):

HTML:

<div id="con"></div>

CSS:

 1 body{ margin:0; padding:0;} 2 #con{  3  4     position:absolute; 5     top:0; 6     left:0; 7     height:100%; 8     width:100%; 9     background-image:url("maskimg/star.jpg"); 10     background-position: center 0;11     background-repeat: no-repeat;12     background-attachment:fixed;13     background-size: cover;14     -webkit-background-size: cover;/* 相容Webkit核心瀏覽器如Chrome和Safari */15     -o-background-size: cover;/* 相容Opera */16     zoom: 1;    17 }

 

方法二.不把圖片作為背景,而是使用<img>標籤,效果是圖片尺寸不會隨瀏覽器縮放而變化,但是如果有豎直捲軸時,圖片不會固定而會隨捲軸移動。只需要把圖片的寬度width設定成100%就行了。

代碼很簡單,只有幾行,用的還是百度的星空圖:

HTML:

<div id="con"><img id="pic" src="maskimg/star.jpg"></div>

CSS:

1 body{ margin:0; padding:0;}2 #pic{ width:100%;}

 


CSS背景映像為中心的瀏覽器大小變化不可以修複

頭一次見有人提問css方面的問題居然是絕大部分用中文的,有點還沒搞清楚你想問什麼
如果你是想問讓背景圖片一直處於背景中心的話,那麼樣式如下
background:url(圖片路徑) center no-repeat;

但如果是還想讓圖片的尺寸隨著瀏覽器的大小放大縮小的話,那麼就挺難辦了,我大概給一個簡單處理吧
1、如果樓主只是將其當做一張圖片顯示,可以通過css控制,如img{width:100%;height:100%;}.
否則需要將其作為網頁背景的話可以試試如下方法:
2、如果這張圖片為背景圖片由於背景圖片不具有伸縮性,只能通過別的方法繞著解決,在ie中可以用<body
style="filter:progid:dximagetransform.microsoft.alphaimageloader(src='1.jpg',sizingmethod='scale')">,實現背景展開鋪滿整個瀏覽器,但其它的瀏覽器不支援。
這時可以拐個彎,設定兩層div,底層div當做背景使用,放置一張圖片即可。
<div id="background" style="position:absolute;z-index:-1;width:100%;height:100%;top:0px;left:0px;"><img src="1.jpg" width="100%" height="100%"/></div>
再將網頁內容放置到第二層上<div id="content">頁面內容</content>
3、網頁背景圖片預設情況下是重複平鋪滿整個頁面。上面2方法是要求圖片不重複,但又得佔滿瀏覽器所採用的方法。
 
問CSS可以實現背景圖片展開? (即把瀏覽器放大或縮小後都是顯示一個完整的不重複的圖片)

你好:
使用javascript動態改變圖片的大家就可以了;

希望可以協助到你;
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.