2009-04-24 132 views
554

有沒有辦法使用ONLY CSS按比例調整圖像大小(縮小比例)?用CSS按比例調整圖像大小?

我正在做JavaScript的方式,但只是試圖看看這是否可能與CSS。

+0

Ethan Marcotte最近[調查此iss非常透徹](http://unstoppablerobotninja.com/entry/fluid-images/)。簡短的答案是肯定的,這是可能的,但不是所有的瀏覽器。 – 2009-04-25 00:02:13

+0

如果您不想刻錄帶寬,[slimmage.js](http://github.com/imazen/slimmage)可以提供幫助;它會讀取最終的「max-width」值來調整請求的大小圖像。 – 2013-07-08 16:05:57

+0

你可以設置圖像的寬度,高度是自動調整的。 – 2014-04-08 18:54:44

回答

20
<img style="width: 50%;" src="..." /> 

對我來說工作得很好......或者我錯過了什麼?

編輯:但看到肖恩關於意外升遷的警告。

+0

對不起,我喜歡分開網站的內容和設計。 我完全知道,添加寬度規則工作正常,我最初有。謝謝:) – codingbear 2009-04-25 00:09:40

+0

由於某種原因,這是唯一的選擇,爲我工作..謝謝:) – 2017-02-17 10:46:59

23

css屬性最大寬度和最大高度工作很好,但不支持IE6,我相信IE7。你會想在高度/寬度上使用這個,所以你不會意外地縮放圖像。您只需按比例限制最大高度/寬度。

+2

這似乎是針對HTML5的瀏覽器的最佳方式。 – Nestor 2010-09-15 03:27:42

+0

它在MSIE> = 7中工作:http://www.cssportal.com/css-properties/max-width.php – gouessej 2015-06-17 08:32:55

+0

我很高興舊IE瀏覽器的東西變得無關緊要。 – 2018-02-08 12:26:52

633

要調整圖像比例使用CSS:

img.resize { 
    width:540px; /* you can use % */ 
    height: auto; 
} 
+5

即使img標籤具有高度和寬度屬性,也可以使用。 +1 – 2012-06-11 19:48:13

+54

+1如果需要,也可以使用'max-width'而不是'width'。關鍵是使用'height:auto'來覆蓋圖像上已經存在的任何'height =「...」'屬性。 – Phrogz 2012-07-30 17:30:07

+1

在我的情況下,我用,高度是固定的,我把寬度設置爲自動:)謝謝! – KarenAnne 2013-01-28 08:45:36

30

在2015年回顧:

<img src="http://imageurl" style="width: auto; height: auto;max-width: 120px;max-height: 100px"> 

我重新審視它作爲所有常見的瀏覽器現在已經工作自動謝里夫上述建議,使作品更好,因爲你不需要知道圖像是否比較高。

舊版本: 如果你是的120x100例如框限制,你可以做

<img src="http://image.url" height="100" style="max-width: 120px"> 
182

控制規模,保持比例:

#your-img { 
    height: auto; 
    width: auto; 
    max-width: 300px; 
    max-height: 300px; 
} 
+0

問題是,最大寬度和最大高度不被所有瀏覽器解釋,如IE,對不對? – alexserver 2014-04-09 19:15:52

+1

@alexserver它在MSIE> = 7中工作:http://www.cssportal.com/css-properties/max-width.php – gouessej 2015-06-17 08:31:59

+4

這個答案更好...你可以設置寬度和高度的最大邊界,同時保持比例。 – olivarra1 2015-10-30 10:47:13

4
img { 
    max-width:100%; 
} 

div { 
    width:100px; 
} 

在這個片段中,你可以做它在一個更有效的方式

47

請注意,width:50%將調整它的大小到50%的可用空間爲圖像,而max-width:50%將調整圖像的大小爲其自然大小的50%。在使用移動網頁設計的這些規則時要考慮到這一點非常重要,因此應始終使用移動網頁設計max-width

+6

嗯......至少在桌面上似乎不是這種情況:http://jsfiddle.net/nLh1oh5e/ – Campbeln 2014-10-09 03:07:45

+5

這似乎也不是我的情況。 – jasonleonhard 2014-11-24 22:15:30

+1

謝謝你打電話給我。它有很大的不同。 (至少,我注意到) – contactmatt 2016-02-24 03:11:10

39

爲了通過保持其寬高比

嘗試這個縮放圖像,

img { 
    max-width:100%; 
    height:auto; 
} 
91

如果它是一個背景圖像,使用背景尺寸:含有。

範例CSS:

#your-div { 
    background: url('image.jpg') no-repeat; 
    background-size:contain; 
} 
+11

或'background-size:cover;',它將覆蓋整個區域。 – Turion 2014-05-17 13:15:43

+1

background-size:contains;爲我工作。 – jasonleonhard 2014-11-24 22:16:56

+0

同時加上你想要的寬度和高度= 100% – 2015-04-28 13:27:34

65

嘗試

transform: scale(0.5, 0.5); 
-ms-transform: scale(0.5, 0.5); 
-webkit-transform: scale(0.5, 0.5); 
+5

實際上,如果您必須按比例縮小每個圖像的大小,它的效果會非常好。使用此代碼圖像變得更小2倍。 +1但是!有了這個解決方案,圖像仍然佔據了空間! – 2014-02-26 11:31:32

+0

@Mārtiņš布里斯:這不就是重點嗎?有沒有辦法讓服務器上的圖像佔用更少的空間「僅使用CSS」(請參閱​​OP)? – orome 2014-09-30 12:10:15

+7

不是那種空間。圖像在文檔中仍然具有相同的邊界,寬度和高度,只有它們看起來小了兩倍。想象一下 - 一個尺寸爲100x100的圖像。然後你應用比例尺(0.5),它與圖像50x50相同,但在兩側都有不可見的25px邊框。圖像仍然會佔用100x100的空間。 - – 2014-09-30 12:25:03

2

你總是需要這樣的

html 
{ 
    width: 100%; 
    height: 100%; 
} 

在你的CSS文件

+0

這是一個很好的答案,爲什麼這會得到downvoted?這是一種糟糕的做法還是什麼? – OKGimmeMoney 2015-05-06 21:33:17

13

使用此易結垢的頂部技術

img { 
    max-width: 100%; 
    height: auto; 
} 
@media { 
    img { 
    width: auto; /* for ie 8 */ 
    } 
} 
2

試試這個:

div.container { 
    max-width: 200px;//real picture size 
    max-height: 100px; 
} 

/* resize images */ 
div.container img { 
    width: 100%; 
    height: auto; 
} 
26

可以使用對象配合屬性:

.my-image { 
    width: 100px; 
    height: 100px; 
    object-fit: contain; 
} 

這將適合的圖像,而無需按比例改變。

+0

我使用寬度100%和高度100%,也是對象適合包含。它就像一個魅力:)。而對象適合包含解決方案很簡單 – 2016-11-20 06:47:57

+0

注意瀏覽器支持:https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit截至目前,沒有IE和Android 4.4.4+。 – qix 2017-02-06 20:56:31

+1

這應該是被接受的答案 – 2017-07-04 21:12:01

2
img{ 
    max-width:100%; 
    object-fit: scale-down; 
} 

適合我。它縮小較大的圖像以適應盒子,但將較小的圖像保留爲原始尺寸。

3

我們可以使用CSS在瀏覽器中使用媒體查詢和響應式設計原則調整圖像大小。

@media screen and (orientation: portrait) { 
img.ri { 
    max-width: 80%; 
    } 
} 

@media screen and (orientation: landscape) { 
 
    img.ri { max-height: 80%; } 
 
}

1

image_tag("/icons/icon.gif", height: '32', width: '32') 我需要設置高度:「50像素」,寬度:「50像素」圖像標籤,該代碼從第一工程盡力注意我嘗試了所有上面的代碼但沒有運氣,所以這一個工程,這裏是我的代碼從我的_nav.html.erb:
<%= image_tag("#{current_user.image}", height: '50px', width: '50px') %>

+0

請添加一些解釋。 – BlackBeard 2018-01-29 05:26:54