div css布局中對于圖片列表或圖片排版時(shí),圖片不是固定寬度高度大小,但圖片占位是固定寬度高度,這個(gè)時(shí)候如果使用CSS固定死圖片大小(寬度 高度),這個(gè)時(shí)候如果圖片相對于這個(gè)位置不是等比例大小,那么這張圖片就會變形,讓圖片變的不清晰,這個(gè)時(shí)候想讓圖片不變形又按比例縮放,如何解決?CSS圖片縮小不變形,圖片自動(dòng)縮小,圖片按比例等比例縮小不變形解決。
解決方法有兩種:
第一種,讓圖片和布局寬度高度成等比例,這樣CSS設(shè)置死寬度和高度,圖片也是等比例縮小,圖片也不會變形。
比如淘寶,要求店鋪主上傳產(chǎn)品封面圖片是正方形的,為什么,因?yàn)閳D片寶貝展示列表都是正方形的排版布局,這樣要求上傳合適正方形寶貝封面圖片,也是讓圖片不變形。
所以有條件的情況下,大家將首頁、圖片列表頁的布局寬度高度保持一致,上傳圖片時(shí)候?qū)D片先進(jìn)行處理為布局寬度高度時(shí)等比例放大尺寸的。
第二種,使用CSS max-width和max-height實(shí)現(xiàn)圖片自動(dòng)等比例縮小
很簡單我們要使用到max-width和max-height,這樣即可設(shè)置對象圖片最大寬度和最大高度,這樣圖片就會等比例縮放圖片,然圖片相對不變形清晰。
以下通過實(shí)例對比方法讓大家掌握CSS控制圖片縮小不變形技巧。
這里有個(gè)div,CSS寬度和CSS高度方便為300px和100px同時(shí)設(shè)置1px黑色邊框,里面放了一張圖片(圖片原始寬度650px為高度為406px)。并通過CSS固定死圖片寬度高度。
1、HTML源代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>圖片縮小不變形實(shí)例 www.divcss.com</title> <style> .divcss{ border:1px solid #000; width:300px; height:100px} .divcss img{width:300px; height:100px} </style> </head> <body> <div class="divcss"> <img src="img.jpg" /> </div> </body> </html>
2、CSS固定死圖片寬度高度實(shí)例截圖
原始圖片展示:
原始圖片截圖
css固定寬度高度后變形的圖片截圖
3、小結(jié),通過CSS固定對象內(nèi)圖片高度寬度,這樣圖片如果不是等比例縮小,那么圖片就變形了。
二、CSS解決圖片縮小不變形實(shí)例
使用max-width:300px或max-height:100px,即可解決圖片比例縮小。但這樣存在一個(gè)問題,如果按照寬度縮放,但圖片過高會超出溢出盒子,這個(gè)時(shí)候需要對父級使用overflow:hidden隱藏超出圖片內(nèi)容。但是使用max-width或max-height,IE6不支持,我們需要設(shè)置個(gè)width:expression(this.width > 300 ? "300px" : this.width);或者h(yuǎn)eight:e-xpression(this.height>100?"100px":this.height);。
解決IE6支持max-height
div css解決IE6支持max-width
一般情況下只需要設(shè)置好寬度限制,比如這里只設(shè)置最大寬度為300px(max-width:300px),然后對父級使用overflow:hidden隱藏溢出圖片,同時(shí)為了兼容IE6我們設(shè)置個(gè)width:expression(this.width > 300 ? "300px" : this.width);解決即可。
1、具體解決DIV+CSS實(shí)例代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>圖片縮小不變形實(shí)例 www.divcss.com</title> <style> .divcss{ border:1px solid #000; width:300px; height:100px;overflow:hidden} .divcss img{max-width:300px;_width:expression(this.width > 300 ? "300px" : this.width);} </style> </head> <body> <div class="divcss"> <img src="img.jpg" /> </div> </body> </html>
2、瀏覽器測試效果截圖
css圖片縮小等比例縮小后不變形截圖
3、缺點(diǎn)介紹,如果使用此方法,兼容各大瀏覽器不變形,但圖片不是完整顯示的。