%の指定
画像をウィンドウ幅いっぱいに表示させるとする。
1 2 3 4 5 6 7 8 9 10 11 |
<!-- HTML --> <body> <div class="parentTag"> <img src="sampleImg.jpg" class="imgSize"> </div> </body> /* CSS */ .imgSize { width: 100%; } |
<img>の幅に100%を指定すると親要素(この場合は<div>)の幅と同じ大きさになる。
この場合<div>には幅を指定していないので、<div>がウィンドウ幅いっぱいになり、結果<img>もウィンドウ幅いっぱいになる。
余白を残す
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<!-- HTML --> <body> <div class="parentTag"> <img src="sampleImg.jpg" class="imgSize"> </div> </body> /* CSS */ .parentTag { width: 80% } .imgSize { width: 100%; } |
この場合は親要素の<div>(ウィンドウ幅80%)の幅になる。
最大、最小を指定
画像の最大、最小サイズを指定し、かつレスポンシブにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!-- HTML --> <body> <div class="parentTag"> <img src="sampleImg.jpg" class="imgSize"> </div> </body> /* CSS */ .paretntTag { max-width: 750px; min-widht: 150px; } .imgSize { width: 100%; } |
この場合親要素の<div>がウィンドウ幅に合わせて大きさが変わるが、最大幅は750pxで最小幅は150pxになる。よって<div>も連動して(widhtが100%なので)同じ大きさになる。
vwの指定
画像をウィンドウ幅いっぱいに表示させるとする。
1 2 3 4 5 6 7 8 9 10 11 |
<!-- HTML --> <body> <div class="parentTag"> <img src="sampleImg.jpg" class="imgSize"> </div> </body> /* CSS */ .imgSize { width: 100vw; } |
「vw」はCSS3で追加された単位。前述の「%」と似ているが違いは「親要素に対しての割合」ではなく「描画領域に対しての割合」である点。なので親要素の幅が狭くても突き抜けた状態で表示される。
注意点としては親要素に余白があった場合などは横スクロールバーが表示される時がある事。
メディアクエリを使う
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 |
<!-- HTML --> <body> <div class="parentTag"> <img src="sampleImg-S.jpg" class="imgSize imgSize_s"> <img src="sampleImg-L.jpg" class="imgSize imgSize_l"> </div> </body> /* CSS */ .imgSize { width: 100%; } .imgSize_s { display: none; } @media screen and (max-width: 767px) { imgSize_s { display: block; } imgSize_l { display: none; } } |
sampleImg-Sを小さい画像、sampleImg-Lを大きい画像とする。
メディアクエリが効かないブラウザ用にはじめにsampleImg-Sを非表示にする。
そして、ウィンドウ幅が767px以下の時はsampleImg-Sを表示して、sampleImg-Lを非表示にする。どちらにもsampleImgクラスをつけることにより、大小どちらの画像が表示されてもウィンドウ幅いっぱいに表示される。