aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/css/scaling_background_images/index.html
blob: fa7ce5867776b6126d10397bce27cfec24221706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
---
title: 背景画像の拡大縮小
slug: Web/CSS/Scaling_background_images
translation_of: Web/CSS/CSS_Backgrounds_and_Borders/Resizing_background_images
translation_of_original: Web/CSS/CSS_Background_and_Borders/Scaling_background_images
---
<p>CSS の {{cssxref("background-size")}} プロパティによって、フルサイズの画像がタイル状に配置されるという既定の動作の代わりに、背景画像のサイズを調節することができるようになります。画像を望むように拡大または縮小することができます。</p>

<h2 id="Tiling_a_large_image" name="Tiling_a_large_image">大きな画像をタイル状に配置する</h2>

<p>1233 × 1233 の大きな Firefox のロゴ画像を考えてみましょう。 300 × 300 四方に、この画像の 4 つのコピーをタイル状に配置したい(ぞっとするほど悪いサイトデザインを含むいくつかの理由で)場合、結果としてこうなります。</p>

<p><img alt="screenshot1.png" class="default internal" src="/@api/deki/files/4001/=screenshot1.png"></p>

<p>これは以下の CSS を使うことで達成されます。</p>

<pre class="brush: css;  highlight:[8]">.square {
  width: 300px;
  height: 300px;
  background-image: url(fxlogo.png);
  border: solid 2px;
  text-shadow: white 0px 0px 2px;
  font-size: 16px;
  background-size: 150px;
}
</pre>

<p>もし、とても古いブラウザをターゲットにするのであれば、いくつかの接頭辞を付したバージョンを加えることを考えるかもしれませんが、もう {{cssxref("background-size")}} に接頭辞を付すことは必要ありません。</p>

<h2 id="Stretching_an_image" name="Stretching_an_image">画像を引き伸ばす</h2>

<p>以下のように、画像の水平方向と垂直方向の両方のサイズを記述することもできます。</p>

<pre class="brush:css">background-size: 300px 150px;
</pre>

<p>その結果はこのようになります。</p>

<p><img alt="screenshot3.png" class="default internal" src="/@api/deki/files/4003/=screenshot3.png"></p>

<h2 id="Scaling_an_image_up" name="Scaling_an_image_up">画像を拡大する</h2>

<p>この範囲のもう 1 つの終端では、画像を背景の中で拡大することができます。 ここで、300 × 300 ピクセルに 16 × 16 ピクセルの favicon を拡大します。</p>

<p><img alt="screenshot2.png" class="default internal" src="/@api/deki/files/4002/=screenshot2.png"></p>

<pre class="brush: css; highlight:[5]">.square2 {
  width: 300px;
  height: 300px;
  background-image: url(favicon.png);
  background-size: 300px;
  border: solid 2px;
  text-shadow: white 0px 0px 2px;
  font-size: 16px;
}
</pre>

<p>ご覧のとおり、 CSS は実際には本質的に同一で、画像ファイル名は安全です。</p>

<h2 id="Special_values.3A_.22contain.22_and_.22cover.22" name="Special_values.3A_.22contain.22_and_.22cover.22">特別な値の「contain」と「cover」</h2>

<p>CSS の {{cssxref("background-size")}} には、 {{cssxref("&lt;length&gt;")}} の値の他に、 <code>contain</code><code>cover</code> の 2 つの特別なサイズの値が提示されています。これらについて見てみましょう。</p>

<h3 id="contain" name="contain">contain</h3>

<p>contain は、コンテナとなるボックスのサイズにかかわらず、背景画像は コンテナの対応する辺の長さを超えないように、可能な限り大きくなるようにそれぞれの辺を拡大縮小されるべきことを指定します。下記の実演中の例からこのことを確認するため、 Firefox 3.6 以降のような、背景画像の拡大縮小に対応したブラウザを使って、ウィンドウのサイズを変えてみて下さい。</p>

<div style="width: 100%; height: 200px; border: solid 2px;">
<p>このウィンドウのサイズを変えて、何が起こるかを見て下さい。</p>
</div>

<p>上の例の CSS は以下のようなものです。</p>

<pre class="brush: css; highlight:[4]">width: 100%;
height: 200px;
background-image: url(https://developer.mozilla.org/files/2917/fxlogo.png);
background-size: contain;
border: solid 2px;
</pre>

<h3 id="cover" name="cover">cover</h3>

<p>cover は、背景画像の両方の寸法が、コンテナの対応するサイズより大きくなる、または同じになることを確保しつつ、背景画像を可能な限り小さい大きさになるべきことを指定します。</p>

<div style="width: 100%; height: 200px; border: solid 2px;">
<p>このウィンドウのサイズを変えて、何が起こるかを見て下さい。</p>
</div>

<p>この例では以下の CSS を使用しています。</p>

<pre class="brush: css; highlight:[4]">width: 100%;
height: 200px;
background-image: url(https://developer.mozilla.org/files/2917/fxlogo.png);
background-size: cover;
border: solid 2px;
</pre>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li>{{cssxref("background-size")}}</li>
 <li>{{cssxref("background")}}</li>
</ul>