あくまで自分用の覚え書きなので文章とか適当です...

画像をレスポンシブ対応させるために出し分けする例

MEMO: 画像にスタイルを適用する場合は mainvisual__picture img でOK

<figure class="mainvisual__picture">
	<picture>
		<source media="(max-width:767px)" srcset="./family-sp.png 1x, ./family-sp@2x.png 2x">
		<source media="(min-width:768px)" srcset="./family.png">
		<img src="./family.png" width="1400" height="890" alt="写真:家族の画像">
	</picture>
</figure>

2. picture 要素 + webp による画像の出し分け

Chromeではディベロッパーツールで小さい画面から大きくしていく/リロードすると画像の切り替わりを確認できる。

WebPフォーマットに対応したブラウザでは source、非対応では img の画像が表示される

<picture>
	<source
	type="image/webp"
	srcset="img400.webp 400w,
			img800.webp 800w,
			img.webp 1600w"
	sizes="(max-width: 1600px) 100vw, 1600px"
	>
	<img src="img.jpg"
	srcset="img400.jpg 400w,
			img800.jpg 800w,
			img.jpg 1600w"
	sizes="(max-width: 1600px) 100vw, 1600px"
	alt="">
</picture>

3. srcset sizes 属性による画像の出し分け

Chromeではディベロッパーツールで小さい画面から大きくしていく/リロードすると画像の切り替わりを確認できる。

<figure class="mainvisual__picture">
	<picture>
		<source media="(max-width:767px)" srcset="./family-sp.png 1x, ./family-sp@2x.png 2x">
		<source media="(min-width:768px)" srcset="./family.png">
		<img src="./family.png" width="1400" height="890" alt="写真:家族の画像">
	</picture>
</figure>

キービジュアルに設定する場合

html

<div class="keyvisual">
    <h1 class="u-visually-hidden">XXXXXXXXXXXXXX</h1>
    <p class="u-visually-hidden">XXXXXXXXXXXX</p>
    <picture>
    <source media="(max-width: 767px)" srcset="./assets/img/keyvisual-sp.jpg">
    <source media="(min-width: 768px)" srcset="./assets/img/keyvisual.jpg">
    <img src="./assets/images/keyvisual.jpg" width="2160" height="1148" alt="">
    </picture>
</div>

CSS

.u-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
スポンサーリンク
WooCommerce対応 ネットショップ向けWordPressテーマ「Japacart ジャパカート」日本語に対応