0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エンジニア歴1ヶ月の人間がCSS設計完全ガイド

Posted at

 前回の投稿から約1ヶ月が経過し、現在は主にPHPに関するカリキュラムを受講しています。すると、1ヶ月前に比べてできることはかなり増えましたが、CSSに関しては忘れている事項も多いことに気がつきました。
 そこで今回、カリキュラムの一環として、「半田惇志(2020) 『CSS設計完全ガイド 詳細解説+実践的モジュール集』 技術評論社」を読んでみました。
 CSSに関して忘れていたことだけでなく、過去のモヤッとした知識がクリアになったように思えたので、以下にその内容と感想を、抜粋してまとめました。
 エンジニア歴1週間→1ヶ月の成長が書かれているものとしてご覧いただけますと幸いです。
 細心の注意を払っていますが、稚拙な文体であること、用語の解釈に誤りがあるかもしれないこと、本書の内容や主張を代弁しているわけではないことにつきましては、予めご了承ください。

CSS設計の意義

 CSSは、文章構造(HTMLなど)とスタイルを分離するために開発され、CSSのおかげでスタイルの変更が容易になりました。
 しかし、PHPに触れてみて思ったことは、ページ数が多すぎてCSSの該当箇所がわかりづらい、ということでした。以前CSS設計について学びましたが、新しく学ぶPHPでいっぱいいっぱいだったので活用できていませんでした。現在約10ページのPHPに触れている段階でそのような状態なのですから、ページが増えれば増えるほどとてもわかりにくいコードになってしまうと感じました。
 また、CSSはグローバルスコープしか持っていないため、スタイリングが増えれば増えるほどCSS同士が相互に干渉する可能性が高くなります。
 さらに、現在は複雑でリッチなウェブサイトが求められているので、上記の問題点やエラーがとても起きやすい状況だといえます。
 したがって、いかにCSSをわかりやすく保つかが大事になってきます。そこで、このCSSを、 抽象化し、分ける ことがCSS設計の意義だといえます(1ヶ月前よりもCSS設計の重要性を深く理解できました)。

カスケーディング

 単純セレクター・擬似要素・結合子といったセレクターが存在する中で、それらの優先度順で適用するスタイルを決定する規則のことをカスケーディングと言いますが、その優先度は

1 重要度(!importantなど)
2 詳細度
3 コードの順序 { 後のコードが優先。:where()などを使うと強制的に後勝ちにできる。(前回の記事を読んでいただいた方に教えていただきました。) }

となっています。

詳細度に関しても、

1 IDセレクター(#headerなど)
2 擬似クラス・属性セレクター・クラスセレクター
3 要素型セレクター(pなど)

となっています。
そして、同じ優先度のセレクターをいくら用いても、同じ優先度のセレクター同士では優先されても、一つ上の優先度のセレクターより優先されはしません。
 したがって、CSS設計を行うためには、 カスケーディングを理解し、管理できるようになる 必要があります。詳細度の確認に便利なサイトもあるので、それも用いながらわかりやすいCSSを書けるようになりたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?