ほんっとにはじめてのHTML5とCSS3

[71] img要素のsrcset属性で画像を切り替えよう
サンプル2:「sizes属性」を使ったマルチカラムの例

「sizes属性」を使ったマルチカラムの例

画面が あるサイズより大きければ「3カラム」、それより小さいサイズなら「1カラム」にした例です。
PCのかたはウィンドウサイズを小さくしてみてください。

(Chromeなどで表示が切り替わらない場合は、ブラウザのキャッシュをクリアして再読込してみてください)

正しい文章を入れよう正しい文章を入れよう正しい文章を入れよう正しい文章を入れよう正しい文章を入れよう正しい文章を入れよう

HTMLはこちら。

<figure>
<img srcset="img/img1-S.jpg 320w,
             img/img1-M.jpg 640w,
             img/img1-L.jpg 960w"
      sizes="(min-width: 768px) 30vw,
             100vw"
      src="img/img1-S.jpg" alt="正しい文章を入れよう"><!--スペースをコメントアウトしています

--><img srcset="img/img2-S.jpg 320w,
                img/img2-M.jpg 640w,
                img/img2-L.jpg 960w"
         sizes="(min-width: 768px) 30vw,
               100vw"
           src="img/img2-S.jpg" alt="正しい文章を入れよう"><!--

--><img srcset="img/img3-S.jpg 320w,
                img/img3-M.jpg 640w,
                img/img3-L.jpg 960w"
         sizes="(min-width: 768px) 30vw,
               100vw"
           src="img/img3-S.jpg" alt="正しい文章を入れよう"><!--

--><img srcset="img/img4-S.jpg 320w,
                img/img4-M.jpg 640w,
                img/img4-L.jpg 960w"
         sizes="(min-width: 768px) 30vw,
               100vw"
           src="img/img4-S.jpg" alt="正しい文章を入れよう"><!--

--><img srcset="img/img5-S.jpg 320w,
                img/img5-M.jpg 640w,
                img/img5-L.jpg 960w"
         sizes="(min-width: 768px) 30vw,
               100vw"
           src="img/img5-S.jpg" alt="正しい文章を入れよう"><!--

--><img srcset="img/img6-S.jpg 320w,
                img/img6-M.jpg 640w,
                img/img6-L.jpg 960w"
         sizes="(min-width: 768px) 30vw,
               100vw"
           src="img/img6-S.jpg" alt="正しい文章を入れよう">
</figure>

CSSはこちら(要点のみ)

figure {
	display:block;
	margin:3em 0;
	line-height:0;     /*imgの隙間を埋めるため*/
	text-align:center; /*imgのブロックをセンター合わせにしています*/
    }
img {
	display:inline;  /*imgに displayの指定をしていなければコレは不要です*/
	padding:1px;     /*img同士の間隔です*/
	max-width:100%;  /*自分自身のサイズより拡大しないようにしています*/
    }

<figure>要素の line-height を 0 にしているのは、子要素の <img>要素(=インラインの置換要素)の場合、親要素の line-height によって縦方向に隙間ができるためです。
親要素の行間を「line-height:0」にすれば隙間はできません。(親要素内にテキストを入れたい場合は、他の要素(spanなど)で囲んで改めて line-heightの指定をする必要がありますが)