ファニプロTech
-
CSSコーディングを考える(1)
2021.06.30
-
はじめまして、フロントエンドエンジニアの松崎です。
僕自身が勝手にシリーズ化を決めた『CSSコーディングを考える』の第1回の記事になります。
『CSSコーディングを考える』では、CSS設計を通して個人的にどのようなコーディングルールで書くのがいいのかを考えながら書いていく予定です。
第1回の記事は「CSS設計の前提」についての話。
目次
CSS設計とは
CSSはグローバルスコープしか持たないという特徴があります。
グローバルスコープは「どこからでも参照できる」「上書きができる」という特徴があり、デメリットとして「全てのスタイリングが干渉し合う可能性がある」というものがあります。
スタイリングが干渉する可能性を極力なくし、運用保守をしやすくするために「どのようにCSSを管理するか」というのがCSS設計です。
良いCSSで書く
良いCSSとは何か。
GoogleのエンジニアであるPhilip Walton氏が「CSS Architecture」で言及したのが以下の4点。
・予測可能
・再利用可能
・保守可能
・拡張可能
以下、引用部分はDeepL翻訳に100%頼りきった日本語訳です。
分かりにくい箇所もあると思いますが、その辺はニュアンスで…!
・予測できる
”予測可能なCSSとは、ルールが期待通りに動作することを意味します。ルールを追加・更新しても、意図しない部分に影響を与えることはありません。変化の少ない小規模なサイトではそれほど重要ではありませんが、何十ページ、何百ページもある大規模なサイトでは、予測可能なCSSが必須となります。”
引用元:CSS Architecture
将来の自分や自分以外の第三者が運用保守を任されたときに、すぐにどのようなコードか読み解けるのが最善です。
運用保守の際にコードを読み解くことに必要以上の労力を使わせるのは無駄なので、その無駄を事前に避けるようにコードを書く必要べきです。
例えば、「命名規則が分かりやすい」「よりシンプルなスタイルで書く」ことで、コードを読み解く時間が最小で済みます。
・再利用できる
”CSSのルールは抽象化され、分離されていなければなりません。そうすれば、すでに解決されたパターンや問題を再コーディングすることなく、既存のパーツから新しいコンポーネントを素早く構築することができます。”
引用元:CSS Architecture
CSSの量をなるべく減らすことで、表示速度を上げることができます。
また、共通する部分の変更を一つ一つ行うより、一括で行える方がミスも減り、時間もかかりません。
テーマカラーやフォント、ボタン、見出し…など、共通部分は変数やパーツとしてまとめておき、それを再利用することで、CSSの記述量を減らし、変更への対応にも強くなります。
・保守できる
”新しいコンポーネントや機能を追加したり、更新したり、配置を変えたりする必要がある場合、既存のCSSをリファクタリングする必要はありません。コンポーネントXをページに追加しても、それだけでコンポーネントYが壊れてしまうことはありません。”
引用元:CSS Architecture
全体的に管理されているコードを書くことで、運用保守で不要なコストをかけずに済みます。
・拡張できる
”サイトの規模が大きくなり、複雑になると、通常はメンテナンスのために多くの開発者を必要とします。スケーラブルなCSSは、一人でも大規模なエンジニアリングチームでも、簡単に管理できることを意味しています。また、サイトのCSSアーキテクチャは、膨大な学習を必要とすることなく、簡単にアプローチできることを意味します。今、CSSを触っている開発者があなただけだからといって、今後もずっとそうだとは限りません。”
引用元:CSS Architecture
上記の「保守できる」と通ずるところがありますが、自分以外の第三者が更新や修正を行う際に、機能やスタイルの加筆修正が容易にできることが理想的です。
以上の4点が守られないと、運用保守をする際に不要なコストを割くことになりかねません。
「将来のリソースを奪わないように、良いCSSで書こう」というのがCSS設計の根幹でしょうか。
無駄に将来のリソースを奪わなければ…
・より質の高い提案ができたり
・より質の高い制作ができたり
・リソース不足で受注できなかった案件を受注できたり
・外注しているものを自社で解決できたり
・もっと勉強できたり
・プライベートをより良く過ごせたり
etc.
夢が広がりますね。
今回は以上になります。
次回からは、具体的なCSSの書き方について考えたいと思います。カテゴリー:ファニプロTech
タグ:採用サイト
こちらの記事もおすすめ
-
-
初心者でも簡単!VSCodeでScssを書くための環境構築の方法
2021.07.01
-
-
意外と知らない?メディアクエリを使ってみよう。
2021.06.25
-
- ウチダ商事様 【展示会用プロモーション動画】
- ウチダ商事様 【コーポレートサイト】
- ウチダ商事様 【職種紹介動画】
- ウチダ商事様 【フォトムービー】
- ウチダ商事様 【新卒採用パンフレット】
- 三井ホーム様 【新卒採用パンフレット】
- 株式会社EPLink様 【コーポレートサイト】
- EP綜合様 【採用パンフレット】
- EP綜合様 【職種紹介映像】
- EP綜合様 【新卒採用パンフレット】
- アップルケアネット様 【職種紹介動画】
- アップルケアネット様 【新卒採用パンフレット】
- 清瀬病院様 【看護部サイト】
- 清瀬病院様 【病院サイト】
- グリーンイノベーションズホールディングス様 【新卒・中途採用サイト】
- リンクフォース様 【コーポレートサイト】
- 救世軍ブース記念病院様 【施設紹介動画】
- 救世軍ブース記念病院様 【看護部サイト】
- ソリューション・アンド・テクノロジー様 【フォトムービー】
- 富士通エフ・アイ・ピー・システムズ様 【会社紹介動画】
- 富士通エフ・アイ・ピー・システムズ様 【職種紹介動画】
- サイゼリヤ様 【新卒採用パンフレット】
- みずほ不動産販売様 【座談会動画】
- みずほ不動産販売様 【インタビュー動画】
- みずほ不動産販売様 【採用パンフレット】
- みずほ不動産販売様 【職種紹介動画】
- みずほ不動産販売様 【タペストリー、ロールアップバナー】
- みずほ不動産販売様 【採用サイト】
- JAXA(宇宙航空研究開発機構)様 【機構紹介動画】
- 全国共済様 【普及員募集LP】
- 全国共済様 【組織紹介動画】
- 日本旅行様 【職種紹介動画】
- JOGMEC(独立行政法人石油天然ガス・金属鉱物資源機構)様 【採用サイト】
- ホームズ様 【WebサービスUI】
- ホームズ様 【サービス紹介動画】
- ホームズ様 【コーポレートサイト】
- ホームズ様 【サービス紹介LP(ランディングページ)】
- 中村病院様 【看護科サイト】
- 城西病院様 【看護部サイト】
- 榎本会計様 【採用サイト・採用動画 by PAKETUNE】
- 榎本税務会計事務所様 【コーポレートサイト】
- アンベール・ジャパン様 【コーポレートサイト】
- JEM様 【ハウツー動画】
- JEM様 【WEB CM動画】
- ガイアート様 【タペストリー、ロールアップバナー、椅子カバー、テーブルクロス】
- ガイアート様 【職種紹介動画】
- カワイ株式会社様 【コーポレートサイト】
- 住友電設様 【職種紹介動画】
- 住友電設様 【職種紹介動画】
- 住友電設様 【職種紹介動画】
- 住友電設様 【職種紹介動画】
- 住友電設様 【新卒採用パンフレット】
- 住友電設様 【デジタルサイネージ】