先日、『Every Layout - モジュラーなレスポンシブデザインを実現するCSS設計論』を読みました。 CSS設計に関する深い洞察が詰まった一冊で、多くの学びを得られました。本記事では、その中で特に印象に残ったポイントを紹介します。
CSSを書く際に、"height: 100px;" や "width: 100px;" のような絶対値を使うと、表示するデバイスやビューポートによって崩れる可能性があります。 これを防ぐには、相対的な値を活用するのが有効です。
例えば、以下のような単位や手法を使うことで、レスポンシブなデザインを実現できます。
相対的な指定にすることで、ブラウザが親要素やビューポートのサイズを元にスタイルを計算してくれるため、デザインの柔軟性が向上します。 特にコンテナクエリは、より精密なレスポンシブデザインを可能にするため、積極的に使いたい機能です。
参考リンク:length - CSS: カスケーディングスタイルシート | MDN
そのため、CSSを書く際にpxを見かけたら「もっと相対的にできないか?」を考えるのが私の習慣になっています。 メディアクエリを極力使わずに対応できることを目指してみるのも面白いアプローチだと思います。
リスト表示のUIを作成する際、リストアイテム間のスペースをどこで制御するべきか迷うことがあります。私は以下のアプローチが有効だと考えています。
flexのgapや、以下のようなCSSルールでリスト要素間のスペースを管理します。
.list > * + * {
margin-top: 1rem;
}このように、子要素ではなく親要素にスペース管理を委ねると、個別要素の再利用性が高まります。 特に、要素が自分の外側のスタイル(marginなど)を持つと、再利用時に制約が生じやすいため注意が必要です。
また、スペースの管理には以下を使い分けるのが重要です。
この考え方を元に、flexやgridを使いこなせば、効率的なレイアウト設計が可能です。 また、最近ではサブグリッドも利用できるようになり、複雑なカードレイアウトでも縦横の整列が容易になっています。
『Every Layout』はCSS設計の新しい視点を与えてくれる良書でした。 特に、 「ブラウザに計算させる」という考え方や、「レイアウトの責任を親要素に持たせる」 というアプローチは、日々の実装にすぐに役立つ内容です。
CSSにおける「責任の分離」を意識することで、再利用性が高く、メンテナンス性の良いコードを目指せます。ぜひ興味のある方は一読してみてください!
-
※ ログイン不要で投稿できます。
※ 同じブラウザから投稿を削除できます。
0
読み込み中...
タグ「書籍レビュー」の記事
以下の書籍を読みました。 感想について書こうと思います。 https://books.mdn.co.jp/books/3225303033/ 概要 本書では、数年以内に流行った比較的新しいCSSテクニックについて紹介されていました。 例えば
2026年03月15日
Googleレコメンドで、以下のCSSに関する書籍が流れてきました。 CSS 優良デザイン×アイデア事典 プロがシェアする現場の即戦力テクニック|株式会社エムディエヌコーポレーション - books.mdn.co.jp なんとなくレコメンド
2026年03月10日
以下の書籍を読みました。 書籍の感想を書こうと思います。 https://note.com/ingectared/n/n7883798f12ce トンマナ TONEは雰囲気や印象の調子。 MANNERはそれを形づくり形式やルール。 この2つ
2026年03月07日
タグ「フロントエンド」の記事
Webフロントエンドのコードレビューをしているときに考えていることについて書きます。 毎日1記事投稿、1記事30分という制約を課していますので、本記事は完璧ではありません。(言い訳) また希望的な考えもあるので、実践していないものもあります
2026年03月12日
AI にコードを書かせた後、余計なコードを見つけて消す作業があります。 不毛なことなので、それらの作業を減らすためのお作法を紹介します。 未使用コードを消す 以下でも書きましたが、未使用コードの検査に knip を使うことが多いです。 ht
最近、iframeを使っています。 クライアントサイドで埋め込む想定で、iframeを使おうとしています。 色々と苦労したことがあったので、書いて残しておこうと思います。 レスポンスヘッダー 前提として、ウェブアプリケーションをプロダクショ