辽阳剐什教育咨询有限公司

div css布局中CSS圖片大小自動(dòng)按比例等比例縮小圖片不變形解決技巧

div css布局中CSS圖片大小自動(dòng)按比例等比例縮小圖片不變形解決技巧
  • 作者:杭州俍辰科技有限公司
  • 發(fā)表時(shí)間:2018-02-01

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固定寬度高度后變形的圖片截圖

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)介紹,如果使用此方法,兼容各大瀏覽器不變形,但圖片不是完整顯示的。


上一條:盤點(diǎn)那些曾經(jīng)讓程序員目瞪口呆的Bug都有什么?
下一條:微信已支持改微信號:一年可修改一次