(tb)タブレット幅表示の調整 | SkillhubAI(スキルハブエーアイ)

(tb)タブレット幅表示の調整

タブレット幅の表示を、見本に合わせていきましょう。
コンテンツ幅よりも小さくなると崩れそうな箇所がないかも、合わせてチェックしていきます。

1.ファーストビューの調整

1-1.メディアクエリを書く

まず、タブレット幅(834px以下)のみスタイルを適用出来るようにします。

css

/* ===================================
/ ===================================
/     幅834px 以下(タブレット向け)の設定
/ ===================================
/ =================================== */
@media(max-width: 834px) {



} /* @media */

1-2.ファーストビューを1カラムに

タブレット幅でのヘッダーとフッター表示はそのままです。
ファーストビューは変更点が結構あります。
file

メールマガジン登録フォームの部分から調整しましょう。
タブレット幅以下の時は12カラム分のスペースを確保する、col-tb-12クラスを作ります。

css

/* @media(max-width: 834px) {} 内に書く */
.col-tb-12{
    flex: 0 0 auto;
    width: 100%;
}

htmlでは、col-6クラスを指定しているdivに、col-tb-12クラスを追加します。

html

<div class="row justify-content-end">
    <div class="col-6 col-tb-12">
        <div class="fv-form b-radius30">
            <p class="fw-bold">
                会員様限定コンテンツ配信中!
            </p>

file

1-3.ファーストビューの高さと背景調整

下記の3点を調整します。

  • ファーストビューの高さ(長さ)を短くする
  • ゴリラが中央にくるよう、背景画像の位置を調整
  • 左右paddingを増やす(コンテンツを中央に寄せる)

css

/* @media(max-width: 834px) {} 内に書く */
/* ---------------------- */
/* first view
/* ---------------------- */
.fv {
    height: 70vh;
    padding: 2rem 1rem;
    background-position:left bottom;
}

file
だいぶ見本に近づいてきました。

1-4.テキストとフォームの配置

トップコピーと、メールマガジン登録フォームを上下に離します。

css

/* @media(max-width: 834px) {} 内に書く */
.fv-inner {
    justify-content: space-between;
}

file

2.イベント・ニューオープン

イベント・ニューオープンのセクションも<article>を12カラム分に変更します。
しかし、表示を見ると画像が歪んでしまっています。先にここを直しましょう。
file

2-1.画像の縦横比を保持

画像が歪んでいるのは、min-height指定が原因で以下のように表示されているためです。

  • 横幅:親要素の幅いっぱい分
  • 高さ:420px

かと言って、min-height指定を無くしてしまうと、下図のようにテキスト部分がはみ出す危険があります。
file

ですので、画像の縦横比を保持する設定を追加しましょう。
object-fitという、親要素にどう嵌め込むかを指定できるCSSプロパティを使います。

css

/* メディアクエリ外(元の記述に追加) */

.news .col-6 > img{
  min-height: 420px;
  object-fit: cover; /* 今回の追加分 */
}

file

画像の歪みがなくなりました。
object-fitの値にcoverを指定すると、縦横比を維持したまま、はみ出した部分は隠す(トリミングする)ような形で表示してくれます。
file

backgroundの指定で使う「cover」と同じ仕組みです。
object-positionプロパティをセットで使うと位置指定も出来ます。

/* メディアクエリ外(元の記述に追加) */

.news .col-6 > img{
  min-height: 420px;
  object-fit: cover;
  object-position: right; /* 今回の追加分 */
}

file

2-2.カラム数の変更

<article>に、col-tb-12クラスをそれぞれ追加します。

html

<article class="col-6 col-tb-12 position-relative mt-3rem">

file

3.注目の動物

注目の動物セクションは、レイアウトの変更はありません。

ただ、画面幅を縮めると下図(左)のように吹き出しの位置が下がってしまいます。
画像を縦方向中央に配置されるように調整します。
file

画像を囲っている<div class="col-5">をFlexボックス化して、align-items:center;で縦方向中央配置を作ります。

PC幅の場合は画像の方が高くなるので、縦方向の位置は関係しません。
ですので、tb幅以下のクラスは作らず、既存のクラスを使います。

html(例)

<div class="col-5 d-flex align-items-center">
    <img src="images/panda.jpg" alt="パンダ" class="w-max100 b-radius30 animal-photo">
</div>

ライオンとゾウも、同じようにクラスを追加してください。
file

4.ズーロッパについて

下記の4つを変更します。

  • 画像とテキストを縦並びにする
  • 画像とテキストとの間に余白を入れる
  • 写真は最大幅を決める(400px)
  • 画像を横方向中央に配置する

まず、画像とテキストの縦並び。
これはcol-tb-12クラスを追加でできます。

html

<div class="row mt-3rem">
    <div class="col-4 col-tb-12 d-flex align-items-center"><!-- クラス追加 -->
        <img src="images/worker.jpg" class="w-max100 b-radius50" alt="飼育員">
    </div>
    <div class="col-8 col-tb-12"><!-- クラス追加 -->
        <p>
            動物園(ズーロッパ)は、世界中の野生動物を、展示し飼育し繁殖させている国内でも最大級の動物園です。
        </p>

次に画像のサイズと配置。
これは直接CSSで指定してしまいましょう。

css

/* @media(max-width: 834px) {} 内に書く */
  .message-text img{
    width: 400px;
    margin: 0 auto 2rem auto;
  }

file

フッターはそのままで良いので、ここまででタブレット幅の調整完了です。