如何用CSS使圖片自適應顯示寬度 (轉(zhuǎn)載)
?
公司的項目中需要顯示由用戶提供URI鏈接的圖片,可是預先無法獲知圖片的尺寸大小,如果圖片尺寸過大將會影響頁面布局。最理想的解決方案自然是自動生成縮略圖,涉及的后臺工作較為復雜,用CSS進行控制是一個可以接受的捷徑。
如果用 width 屬性強行設(shè)定顯示尺寸似乎太不智能。幸好 Firefox/Opera/IE 7 都提供了 max-width 屬性支持。假定希望圖片顯示寬度不超過500像素,CSS可能如下:
fit-image { border : 0; max-width : 500px; }
讓我痛恨的 IE6 不支持 max-width 屬性,但是利用 IE 獨有的 expression 屬性可以迂回的解決這個問題。
fit-image { border : 0; max-width : 500px; width: expression ( function(img){ img.onload=function(){ this.style.width = ''; this.style.width = (this.width > 500)?"500px":this.width+"px" }; return '120px' //加載時顯示寬度為120px }(this) ); }
利用<img> 的 onload 事件使圖片加載完成后計算其尺寸大小,如果超過500像素就顯示為500像素,否則顯示其默認寬度。
expression 不是符合WEB標準的做法,不到萬不得以不建議使用。但是不能不承認IE的很多擴展是不錯的,IE不應該被輕視!
posted on 2006-07-08 21:39 小熊泡泡 閱讀(395) 評論(1) 編輯 收藏 所屬分類: html-css