ホーム自己紹介ブログ
NO.130
DATE2024. 11. 16

Every Layoutを読みました

先日、『Every Layout - モジュラーなレスポンシブデザインを実現するCSS設計論』を読みました。 CSS設計に関する深い洞察が詰まった一冊で、多くの学びを得られました。本記事では、その中で特に印象に残ったポイントを紹介します。

CSS設計の基本方針: ブラウザに計算させる

CSSを書く際に、"height: 100px;" や "width: 100px;" のような絶対値を使うと、表示するデバイスやビューポートによって崩れる可能性があります。 これを防ぐには、相対的な値を活用するのが有効です。

例えば、以下のような単位や手法を使うことで、レスポンシブなデザインを実現できます。

  • 相対単位: em、ch、vw、cqw など
  • パーセンテージ:"width: 100%"
  • 関数:"calc() で動的な値を計算
  • コンテナクエリ:親要素に応じたスタイリングを可能にする

相対的な指定にすることで、ブラウザが親要素やビューポートのサイズを元にスタイルを計算してくれるため、デザインの柔軟性が向上します。 特にコンテナクエリは、より精密なレスポンシブデザインを可能にするため、積極的に使いたい機能です。

参考リンク:length - CSS: カスケーディングスタイルシート | MDN

そのため、CSSを書く際にpxを見かけたら「もっと相対的にできないか?」を考えるのが私の習慣になっています。 メディアクエリを極力使わずに対応できることを目指してみるのも面白いアプローチだと思います。

レイアウトの責任はどこに置くべきか

リスト表示のUIを作成する際、リストアイテム間のスペースをどこで制御するべきか迷うことがあります。私は以下のアプローチが有効だと考えています。

  • リスト全体で制御

flexのgapや、以下のようなCSSルールでリスト要素間のスペースを管理します。

.list > * + * {
margin-top: 1rem;
}

このように、子要素ではなく親要素にスペース管理を委ねると、個別要素の再利用性が高まります。 特に、要素が自分の外側のスタイル(marginなど)を持つと、再利用時に制約が生じやすいため注意が必要です。

また、スペースの管理には以下を使い分けるのが重要です。

  • padding: 要素の内側のスペースに使用
  • margin: 要素間のスペースを管理する際に使用

この考え方を元に、flexやgridを使いこなせば、効率的なレイアウト設計が可能です。 また、最近ではサブグリッドも利用できるようになり、複雑なカードレイアウトでも縦横の整列が容易になっています。

まとめ

『Every Layout』はCSS設計の新しい視点を与えてくれる良書でした。 特に、 「ブラウザに計算させる」という考え方や、「レイアウトの責任を親要素に持たせる」 というアプローチは、日々の実装にすぐに役立つ内容です。

CSSにおける「責任の分離」を意識することで、再利用性が高く、メンテナンス性の良いコードを目指せます。ぜひ興味のある方は一読してみてください!

書籍レビュー
フロントエンド

-

読者になる

|

シェアする

|

silverbirders

silverbirder

Webソフトウェアエンジニア

ブログを応援する

この記事がよかったら、お布施という形で応援してもらえるとうれしいです。

おふせぼたん

※ ログイン不要で投稿できます。

※ 同じブラウザから投稿を削除できます。

0

読み込み中...

次の記事へ前の記事へ

関連する記事

タグ「書籍レビュー」の記事

『CSS 優良デザイン×アイデア事典 プロがシェアする現場の即戦力テクニック』を読みました。

以下の書籍を読みました。 感想について書こうと思います。 https://books.mdn.co.jp/books/3225303033/ 概要 本書では、数年以内に流行った比較的新しいCSSテクニックについて紹介されていました。 例えば

2026年03月15日

書籍レビュー
『CSS 優良デザイン×アイデア事典 プロがシェアする現場の即戦力テクニック』を買いました。

Googleレコメンドで、以下のCSSに関する書籍が流れてきました。 CSS 優良デザイン×アイデア事典 プロがシェアする現場の即戦力テクニック|株式会社エムディエヌコーポレーション - books.mdn.co.jp なんとなくレコメンド

2026年03月10日

書籍レビュー
『トンマナ の基本 一貫性と時短のデザインルール』を読みました。

以下の書籍を読みました。 書籍の感想を書こうと思います。 https://note.com/ingectared/n/n7883798f12ce トンマナ TONEは雰囲気や印象の調子。 MANNERはそれを形づくり形式やルール。 この2つ

2026年03月07日

書籍レビュー

タグ「フロントエンド」の記事

Webフロントエンドのコードレビューメモ

Webフロントエンドのコードレビューをしているときに考えていることについて書きます。 毎日1記事投稿、1記事30分という制約を課していますので、本記事は完璧ではありません。(言い訳) また希望的な考えもあるので、実践していないものもあります

2026年03月12日

フロントエンド
AIの書いたコードの手直しを減らすお作法

AI にコードを書かせた後、余計なコードを見つけて消す作業があります。 不毛なことなので、それらの作業を減らすためのお作法を紹介します。 未使用コードを消す 以下でも書きましたが、未使用コードの検査に knip を使うことが多いです。 ht

2026年02月25日

AI
フロントエンド
iframeの難しさ

最近、iframeを使っています。 クライアントサイドで埋め込む想定で、iframeを使おうとしています。 色々と苦労したことがあったので、書いて残しておこうと思います。 レスポンスヘッダー 前提として、ウェブアプリケーションをプロダクショ

2026年02月18日

フロントエンド
ブラウザ
← ブログ一覧へ