[CSS]讓圖片自動適應div大小

(3 votes)

做網頁、論壇貼圖、寫部落格。只要有需要上傳圖片的機會,就一定常碰到這問題。一旦不小心上傳一個大於版面的圖片,輕則內容被蓋住,重則排版全亂掉,畫面慘不忍睹。

一般的css處理方法都是靠 over-flow:hidden; 來達成的。但這樣做有個缺點,跑出去的內容會被隱藏起來。如果文字跟著被隱藏的話就看不到了。

 

在這裡提供一個同樣用css的解決辦法吧,能夠自動調整圖片大小。其實在Mozilla系列瀏覽器中都支援Max與Min的大小設定,只要css做這樣處理,就能限定任何元素的最大或最小長寬。

不過偉大的Microsoft硬是不支援這指令,我們只好拉長程式碼啦,整個代碼變得落落長,因為插入了javascript在裡面。

 

 

請先打開你的網站css檔案

輸入以下代碼:

 img {    
max-width:600px;     
myimg:expression(onload=function(){     
this.style.width=(this.offsetWidth > 600)?"600px":"auto"});     
}

 

你可以將600設為任何你要的寬度

 

若只想限定某個區域中的圖片,請輸入:

 #div img {    
max-width:600px;     
myimg:expression(onload=function(){     
this.style.width=(this.offsetWidth > 600)?"600px":"auto"});     
}

 

#div就是那個區域的id,意思是#div底下所有標籤為img的元素皆適用這個設定。如此應該就能看到成效了。

 

我們來看看效果

原本

p00-117

 

修改後

 

p00-1

圖片被壓縮至600px,也可以看到文字乖乖的待在應有的區域中不會亂跑。

 

這樣對於許多套用人家模板卻大小不足,或是經常無法控制使用者是否上傳過大圖片在網站上的管理者來說,是很方便可以一次控制全站圖片大小的方法。


Related Posts with Thumbnails

文章回應

avatar tony
+1
 
 
若只想限定某個區域中的圖片,請輸入:


#div img {
max-width:600px;
myimg:expression(onload=function(){
this.style.width=(this.offsetWidth > 600)?"600px":"auto"});


請問要怎麼才能知道....各個版面位置的div 名稱為啥>>
因為我只想要一部分,而不是整個網站都是width=600

B
i
u
Quote
Code
List
List item
URL
名稱 *
Email
網址 URL
驗證碼   
ChronoComments by Joomla Professional Solutions
送出回應
取消
avatar Asika
0
 
 
請問您瞭解一般的css運作模式嗎???

#div 其實指的是那個區塊的 id 或 class ,我的寫法算是針對稍微瞭解css的使用者。

比如: <div id="123">那就輸入 #123 img {...} 即可


真的不瞭解css請參考 http://blog.asikart.com/-mainmenu-36/1/59-css.html
B
i
u
Quote
Code
List
List item
URL
名稱 *
Email
網址 URL
驗證碼   
ChronoComments by Joomla Professional Solutions
送出回應
取消
avatar tony
0
 
 
另外
我想請問如果要使用joomla架設像您如此美觀優質的blog該使用甚麼套件呢

我在joomla之門有看到mms blog的介紹
不知道您是否就是使用此套件
B
i
u
Quote
Code
List
List item
URL
名稱 *
Email
網址 URL
驗證碼   
ChronoComments by Joomla Professional Solutions
送出回應
取消
avatar Asika
+1
 
 
我是用內建的joomla部落格顯示功能,沒有安裝blog套件


其他擴充套件可以參考這篇文章:http://blog.asikart.com/-mainmenu-36/sitemessage/104-2008-11-24-09-14-14.html


最近工作繁重,三四月間會開始進行更詳細的joomla blog教學,您可以密切注意一下
B
i
u
Quote
Code
List
List item
URL
名稱 *
Email
網址 URL
驗證碼   
ChronoComments by Joomla Professional Solutions
送出回應
取消
avatar tony
0
 
 
您好: 我附上我之前詢問問題的截圖
因為我有使用virtuemart
http://www.tbsc.com.tw/image/ask01.jpg
如上面圖片所示,我的圖片大小超過了該頁面大小。
我知道要去改css

只是我不知道css該改哪一段,我並不知道virtuemart該頁面是哪一段div
我嘗試了好幾個,結果都影響到整個網站
我只想要限制該商品頁面的商品圖片大小
B
i
u
Quote
Code
List
List item
URL
名稱 *
Email
網址 URL
驗證碼   
ChronoComments by Joomla Professional Solutions
送出回應
取消
avatar Asika
0
 
 
我幫你看過網站了
請輸入:

Quote:

#vmMainPage img {
max-width:600px;
myimg:expression(onload=function(){
this.style.width=(this.offsetWidth > 600)?"600px":"auto"});


試試看

要注意太大的圖還是縮一下吧
因為這段程式碼不會等比例縮放
只會左右縮窄而已
B
i
u
Quote
Code
List
List item
URL
名稱 *
Email
網址 URL
驗證碼   
ChronoComments by Joomla Professional Solutions
送出回應
取消
顯示/隱藏 回應
 

Funni-大學好好玩

Funni - 大學好好玩

飛鳥工作室

飛鳥工作室-AsikaStudio

接案項目:

企業架站、BLOG代裝、學校機關、活動資訊網站、產品展示網站、社群論壇等等...

 

JoomlaWatch

JoomlaWatch Stats 1.2.8b by Matej Koval

國家

54.1%TAIWAN TAIWAN
17.3%UNITED STATES UNITED STATES
9.9%AUSTRALIA AUSTRALIA
7.1%JAPAN JAPAN
5.6%CHINA CHINA

訪客

Today:  11
Yesterday:  97
Last week:  756
This month:  2468
Last month:  2825
Total:  34822


標籤雲