CSS のコンテナクエリがそろそろ実用に近づいてきた

こんにちは、魚沼情報サービスの対馬です。今日は最新の CSS 事情のことを書いてみます。

ウェブサイトのレスポンシブ対応のためにメディアクエリがほとんどのサイトで使われていますが、使う場面によってはメディアクエリには使いづらい点があります。

メディアクエリではブレイクポイント(デザインが切り替わる基準点)をデバイスの画面幅で決めています。

このブレイクポイントのルールって、使いづらいときがあるんです。

メディアクエリのブレイクポイントが使いづらい場面

具体的な例として、プラグイン VK All in One Expansion Unit を使って配置したお問い合わせブロックを見てみましょう。

ブロックを単体で配置

まず、お問い合わせブロックを単体で配置すると ↓ こうなります。

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

パソコンでウィンドウサイズを変更して確認すると、1200px よりも小さくなったときに ↓ このように電話番号とお問い合わせボタンが縦に並ぶレイアウトになります。これがデバイスの画面幅に基づいたレスポンシブ動作です。

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

ブロックをカラム内に配置すると…

お問い合わせブロックをカラム内に配置すると、↓ こうなります。ブレイクポイントの基準である画面幅は広いのですが、カラムの幅が狭いので、このようなかっこ悪いレイアウトになっています。

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

ブロックに max-width: 500px を指定

お問い合わせブロックが広すぎるので、ブロックに max-width: 550px; を指定しました。この場合もカラム内に配置したときのようにかっこ悪くなってしまいました。

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

こういうかっこ悪さを想定して、お問い合わせブロックには「電話・メールフォームを縦に設置」というありがたい機能があります。さすが、ベクトルさんですね。
しかし…ここでは、このありがたい機能についてはひとまず忘れて 😅 先に進みましょう。

親要素の幅に基づいてブレイクポイントを決めるコンテナクエリ

ブレイクポイントをデバイスの画面幅ではなく親要素の幅に基づいて決めることができれば、上記のカッコ悪さの問題が解決できます。

また、これができれば、WordPress サイトでレイアウトが
 * 1カラムの場合
 * 2カラム(サイドバーあり)の場合
の両方に対応した CSS を書くことができるようになります。

それができるのが、コンテナクエリという CSS の新機能です。

この記事を書いている2022年10月9日の時点で、ChromeEdgeSafari の最新バージョンでコンテナクエリが使えるようになっています。Firefox ではまだ使えません。

Firefox 以外の主要ブラウザが対応した現在、コンテナクエリがいよいよ実用に近づいてきたと思いますし、積極的に使い始めてもよいのではないかと私は思っています。

コンテナクエリの CSS

ここから下にあるお問い合わせブロックの 追加 CSS クラス には veu_contact_container を指定してあり、以下のコンテナクエリ CSS を記述してあります。親要素の幅 550px がブレイクポイントになっている点に注目してください。

.veu_contact_container.veu_contact-layout-horizontal .contact_txt {
    float: none;
    text-align: center;
    margin-bottom: 1.2em;
}
.veu_contact_container.veu_contact .contact_bt {
    float: none;
    padding: .5rem 1.5rem .6rem;
}

.veu_contact_container .contact_frame {
    container-type: inline-size;
    container-name: veu_contact_container_frame;
}

@container veu_contact_container_frame (min-width: 550px) {

    .veu_contact_container.veu_contact-layout-horizontal .contact_txt {
        float: left;
        text-align: left;
        margin-bottom: 0;
    }

    .veu_contact_container.veu_contact-layout-horizontal .contact_bt {
        float: right;
        padding: .7em 1.5em;
    }

}

ブロックを単体で配置

デフォルトの画面幅 1200px をブレイクポイントとしている場合と比べると、こっちの方がしっくりくるのではないかと…。

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

下記の2つは、かっこ悪さがなくなって、いいかんじです。

ブロックをカラム内に配置

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

ブロックに max-width: 500px を指定

お気軽にお問い合わせください。025-779-28439:00 – 17:00 [ 土日・祝日除く ]

メールでのお問い合わせ

Firefox などのコンテナクエリ未対応のブラウザで表示した場合、意図した結果には当然なっていませんが、破綻していません。むしろ今回の場合、見やすくなっています。

更新情報を受け取る

サイト運営者プロフィール

対馬 俊彦
対馬 俊彦魚沼情報サービス (新潟県南魚沼市)
新潟県南魚沼市・魚沼市を中心に、地域の皆様がパソコンやインターネットを有効活用して業務効率化・課題解決を図るお手伝いを1999年から行ってまいりました。

WordPress を使用したサイト制作・カスタマイズを全国どこからでも承ります。ベクトルが開発している WordPress テーマ「Lightning」「Katawara」および同社のプラグイン「VK Blocks」「VK Filter Search」のカスタマイズを得意としています。遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを開設・運用する上で、うまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

* ドメインやサーバーの契約・申込み
* WordPress やテーマ、プラグインのインストール
* ドメインの移管・移転
* 日常の更新作業
なども含めて、サイトの制作・運用全般をお手伝いできます。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、お気軽にお問い合わせください。

» ご相談・お問い合わせはこちらからどうぞ

WordPress サイト制作・カスタマイズ・サポートを承ります

WordPress を使用したサイト制作・カスタマイズ・サポートを全国どこからでも承っています。ベクトルが開発している WordPress テーマ「Lightning」「Katawara」および同社のプラグイン (VK Blocks Pro ・ VK Filter Search Pro) を使ったサイト制作・カスタマイズを得意としています。遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを開設・運用する上で、うまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

* ドメインやサーバーの契約・申込み
* WordPress やテーマ、プラグインのインストール
* アクションフック・フィルターフック・jQuery・CSS によるカスタマイズ
* ドメインの移管・移転
* 日常の更新作業
なども含めて、サイトの制作・運用全般をお手伝いできます。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、まずはお気軽にお問い合わせください。