[CSS 小技巧] 用CSS讓圖片自動縮放大小

一般圖片想要有相同的大小,大多使用程式或者是先在繪圖軟體中處理過,但是如果圖的大小沒有跟想要縮小的圖片差太多的話,其實使用 CSS 來處理,也是很好的方式哦!
以下就是語法,我有寫註解,看看吧!

div img {
/* IE7、FF等其他非 IE 瀏覽器下最大寬度為 500px , IE6 以下不支援 max-width 屬性 */
max-width:500px;
/* 所有瀏覽器中圖片的大小為 500px */
width:500px;
/* 當圖片大小大於 500px,自動縮小為 500px */
width:expression(document.body.clientWidth>500?"500px":"auto");
overflow:hidden;
}

6 Comments:

ted 提到...

  老師我發現使用 max-width 屬性有一個很嚴重的問題。使用這個語法會造成在IE6中顯示圖片有時正常,有時又不正常,不正常意指圖片會被拉大變形。
  會知道有這個問題是因為剛好我的布落格前天換了一個新佈景,在瀏覽網頁時,圖片有時正常,有時又不正常,這問題對我來說很嚴重,因為我當然希望看的人一定是看到我正常圖的樣子,後來自己費了好一翻功夫才找到真兇,原來就是這個語法造成的,當然地,我就把這語法給註解掉,顯示也就OK正常了。
  IE7經個人測試後,則OK沒問題,不過以目前使用IE6的人還是大部分,因此想使用這個語法的人要謹慎考慮使用況是否真有其必要性。
學生:冠君

蕃茄 (Tomato) 提到...

  這個問題我找個時間再來看看,因為 max-width 這個屬性,IE6應該是看不懂才對,所以你說的情形我還要找時間再來試試看。
  不過,我想你的問題,是不是因為你看圖的時候,它一開始會比較大張,等一會才會縮小,如果是的話,這是正常的,因為我這語法,要載入後再會做縮圖的動作,因此,你會先看到大圖,才進行縮小。

ted 提到...

嗯,老師您試看看囉!不過不是只是剛開始大,等一會兒就會變回正常,而是根本不會變回正常,要按重新整理幾次才有機會變成正常,這是我自己的親身經歷,哈哈!

壞掉的印表機 提到...

max-width:500px;
這個IE6看不懂,所以IE6會沒有作用,也就是IE6會忽略
--------------------
下面這個在IE6&7有作用
width:expression(document.body.clientWidth>500?"500px":"auto");

主要是因為後者是在CSS裡面採用javascript的技術,所以才能讓IE6也支援類似 Max-width 的效果,實際使用上來說的確會有偶爾失效的情況,個人在使用上的感覺不是很穩定。但失效的情形不多。建議室上傳到伺服器去測是最為正確,在測試上,有時候Local端測試會有出現Browser記住舊的CSS而造成沒有吃到新的CSS的不正常情況,此狀況尤其在IE上最為容易發生。

匿名 提到...

老師,我有測試,我想應該真的是JavaScript的問題,只是我在本機跟網路上都沒有發現圖不會縮小的問題耶...

只是有一次我在別人的電腦看我的WEB真的有圖沒有縮小,回家看,又沒有發現說~

不知道是那裡的問題...

蕃茄 (Tomato) 提到...

to 壞掉的印表機 :
我想你的論點應該會是對的,原則上這個 JavaScript 在 IE 中是沒什麼問題,只是在本機上常會有快取的問題,因此,有可能會發生顯示不正常的問題。

 
© 2008 Blogger Template Layout Design by [ Fanchie AirHead ]