【初心者向け】CSSで画像の拡大・縮小方法
「webサイトに載せる画像を綺麗なまま拡大・縮小したい」
こう思う方も多いのではないでしょうか。
本記事をお読みいただくと以下が分かります。
- CSSで画像の拡大・縮小方法が分かる
webサイト設計ではユーザにとって見やすい構成にすることが必須です。画像が汚かったら、それだけで離脱率が高まる場合があります。是非本記事をお読みいただき理解を深めてください。
画像が綺麗に表示されない場合がある
webサイト上に写真や絵のような画像を載せて拡大・縮小する場合、何の調整もしないと画像の縦横比(縦と横の比率)が崩れて汚く表示されてしまう場合があります。
冒頭でも書きましたが、自分が訪れたwebサイトの画像が汚かったりしたら、それだけで「あまりちゃんとしてないサイトだな」という印象を受けますよね。信頼して読み続けられないサイトになってしまう可能性もあるので、画像1つでも丁寧に設計するようにしましょう。
CSSで画像の拡大・縮小をするやり方
それでは、ここから早速CSSで画像の縦横比を維持したまま画像の拡大・縮小をするやり方を紹介します。
ケース1 特別なことをしなくても縦横比が維持される場合
実は、特に設定を何もしなくても画像の拡大・縮小をしたときに縦横比が維持されるケースがあります。
それは、「画像を表示するためのimg要素にサイズの情報を付加していない」ケースです。具体例を見ていきましょう。
<p class="sample"> <img src="sample.jpg" alt="picture"> </p>
このHTMLでは「sample.jpg」を表示することしか指定しておらず、特に縦横のサイズについては明記していません。
このケースは、以下のようなCSSを記述するだけで画像を綺麗に表示することができます。
p.sample img { width: 150px; }
この例ではsample.jpgの横幅(width)を150pxにしており、高さは指定していませんが縦横比を保ったまま画像を表示することができます。
ここまでの話はシンプルですね。ただし「HTMLに画像のサイズについての明記がある場合」は話が変わってきます。
ケース2 CSSで縦横比を維持して画像を拡大・縮小する方法
先ほどとは異なり、以下のようにHTML内で画像のサイズを明記しているとします。
<p class="sample"> <img src="sample.jpg" width="200" height="100" alt="picture"> </p>
この場合は当然、横幅200px、高さ100pxで表示されます。しかし、併せて以下のようにCSSでwidth(横幅)しか指定しなかった場合は縦横比が崩れてしまいます。
p.sample img { width: 150px; }
理由はシンプルで、画像の横幅はCSSで150pxとして指定されているものの、高さはHTMLで100pxとして指定しているため、横幅150px、高さ100pxの画像が表示されてしまうというわけです。
この問題を回避する方法として便利なのが「auto」です。結論から書きますが、以下のようにCSSを記述します。
.sample img { width: 150px; height: auto; }
このようにheightをautoで上書きすることで、横幅が150pxに対して縦横比を維持した高さをCSS側で調整してくれるわけです。
やっていることはシンプルですね。
最後に
ここまでで、CSSで縦横比を維持したまま画像を拡大・縮小する方法をお伝えしました。autoは非常に便利なので覚えておいていただきたいですが、おすすめは「そもそもHTMLに画像のサイズを明記しない」ことだと思います。
都度CSSでautoを指定してもいいのですが、どこに何の画像サイズを設定したのかだんだんわからなくなってしまいます。webサイトのコンテンツが増えてくればくるほど、後から修正するのは非常に骨が折れます。最初の段階で、どのソースコードに何を設定するかは丁寧に決めておくと良いでしょう。
プログラミングやパソコンを使って働きたい!
そのように考え、成長しているIT業界への転職を考えている方も増えてきました。
『IT業界に興味はあるけど、よくわからない…』
『パソコンとかそもそも苦手なのに私なんかにできるのかな』
『エンジニアって聞くけど難しそう』
反対にこのような声も聞く事があります。
そう考えている方は、一度ぜひ転職に成功したエンジニアの方のインタビューをご覧ください!
まとめ
いかがでしたでしょうか。CSSで画像の縦横比を維持したまま拡大・縮小する方法を紹介しました。
はまってしまうと解決するのに時間がすごくかかりますが、分かってしまえばやっていることはシンプルなことがお分かりいただけたと思います。
是非本記事をきっかけに、ユーザにとって読みやすいサイト設計を進めてください。