【レスポンシブ】PCとスマホで異なる画像を表示させる方法

この間LP制作をした際に、PCとスマホで異なる画像を表示させる機会がありました。

PCとスマホで異なる画像を表示させるコーディングはたまに出てくるので、分からない人は是非マスターしましょう!

【レスポンシブ】PCとスマホで異なる画像を表示させる方法

完成形はこちらです。

See the Pen
Untitled
by webis (@webis-co)
on CodePen.

PCとスマホで表示される画像が異なっていることが分かるでしょう。

それでは早速コーディングしていきます。

※ Google Chrome、Firefox、Microsoft edge、Safariで動作確認済み

HTML

<div class="box">
    <div class="img">
        <img src="./image/img1.JPG" alt="" class="pc">
        <img src="./image/img2.JPG" alt="" class="sp">
    </div>
    <div class="text">
        <h2>タイトルが入ります。</h2>
        <p>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。</p>
    </div>
</div>

 

親要素boxの中に、imgとtextのclassを持った子要素を用意しました。

そして、PCの時に表示させたい画像に対して”pc”、スマホの時に表示させたい画像に対して”sp”のclassをつけます。

CSS

こちらがレイアウトのCSSです。

.box {
    max-width: 1000px;
    margin: 100px auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.img {
    flex-basis: 48%;
}
.text {
    flex-basis: 48%;
}
.text h2 {
    font-size: 25px;
    margin-bottom: 35px;
}
.text p {
    font-size: 18px;
    line-height: 1.5;
}

 

そしてPCとスマホで画像を切り替えるためのCSSを書きます。

スマホの時に表示させたい画像は、PCの時は表示させないようにします。

// PCとスマホで画像を切り替える
.pc {
    display: block;
}
.sp {
    display: none;
}

 

最後にスマホの時は、”pc”のclassがついた画像を消し、”sp”のついたclassの画像が表示されるようにします。

// レスポンシブ
@media (max-width: 600px) {
    .box {
        flex-direction: column;
        padding: 0 15px;
    }
    .img {
        margin-bottom: 25px;
    }
    // スマホの時に""sp"がついたclassの画像が表示される
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
}

 

これでPCとスマホで異なる画像を表示させることが出来ました。

大阪のWEB制作会社で働くコーダー。コーディングにハマり、気づいたらWEB制作を仕事にしていました。現在は新規のWEBサイト制作やWordPressカスタマイズしたり、当技術ブログを運営しています。