はじめに
筆者はCSSを細かく追う時間は確保できそうにないが、時折追いかけ、ある時にはおさらいをしたい。そのため利用場面が多いと思われる箇所を本ページに残すことにした。
情報源
本ページ執筆時に以下の資料を参照した。
-
ブラウザ対応状況
用語
スタイルブロック
例えば、以下をbodyスタイルブロックと呼ぶ。
|
|
利用事例として以下のページを挙げる。
プロパティ
例えば、以下のbodyスタイルブロックにある color
はプロパティに該当する。
|
|
単純セレクタ
CSS セレクターの構造 - CSS: カスケーディングスタイルシート | MDNから引用する。
単純セレクターとは、単一の型セレクター、属性セレクター、擬似クラスなどの単一の成分を持つセレクターのことで、他のセレクター成分や結合子と組み合わせたり含んだりすることがないもの
複合セレクタ
CSS セレクターの構造 - CSS: カスケーディングスタイルシート | MDNから引用する。
複合セレクターは、結合子 (en-US)で区切られていない一連の単純セレクターです。
複雑セレクタ
CSS セレクターの構造 - CSS: カスケーディングスタイルシート | MDNから引用する。
複雑セレクターは、ホワイトスペースの子孫結合子を含む、結合子で区切られた 1 つ以上の単純セレクターや複合セレクターの並びです。
相対セレクタ
CSS セレクターの構造 - CSS: カスケーディングスタイルシート | MDNから引用する。
相対セレクターは、結合子で始まる 1 つ以上のアンカー要素からの相対的な要素を表すセレクターです。
基本なセレクター
CSSでHTML要素を装飾する際にはウェブブラウザにどのHTML要素を装飾するか伝える必要がある。CSSは装飾対象を指定する機能としてセレクタを提供する。
基本セレクター
全称セレクター
要素型セレクター
以下に例を示す。
|
|
クラスセレクター
クラスセレクター - CSS: カスケーディングスタイルシート | MDN が詳しい。
前述のページとは異なる例を以下に示す。HTML要素に複数のクラスを設けて各クラスにCSSに同じプロパティを定義した場合、どのCSSがHTML要素に適用されるのかが気になったためだ。
次のHTMLはred, blue, yellowの順番でクラスを設けている。
|
|
それに対してCSSではクラスred, blue, yellowに対して各々 color
プロパティを設けている。CSSではyellow, red, blueの順番で定義したためか、HTMLをウェブブラウザ(Safari, MS Edge)で見ると、クラスblueが優先され、文字色は青であった。
|
|
IDセレクター
属性セレクター
セレクターリスト
セレクターリストはカンマ区切りで連ねたセレクターを指す。例を以下に示す。
|
|
なお、セレクターリスト内に未対応のセレクターがある場合、そのセレクターリストで定義したプロパティはすべて無効になる。例えば次のセレクターリストは h2..foo
という未対応のセレクターが存在する。これにより、同セレクターリストで指定したプロパティは h1
, h2
に適用されない。
|
|
回避策として擬似クラス is()
もしくは has()
を利用する方法がある。
詳しくは以下を参照のこと。
結合子
子孫結合子
子孫結合子 - CSS: カスケーディングスタイルシート | MDN が詳しい。
半角スペースを区切り文字のようにしてセレクターを記述したものを子孫セレクターと呼ぶ。
|
|
例として以下のHTMLをあげる。このHTMLに対して上述のCSSを適用した場合、サブアイテム1が赤字になる。
|
|
子結合子
子結合子 - CSS: カスケーディングスタイルシート | MDNから引用する。
子結合子 (child combinator) (>) は 2 つの CSS セレクターの間に配置されます。 2 つ目のセレクターが 1 つ目のセレクターの直接の子要素の場合にのみ一致します。
後続兄弟結合子
次兄弟結合子
特殊なセレクター
擬似クラスを取り扱う。
TODO :has()
:has()
は疑似クラス関数である。
TODO 詳細度
TODO float
TODO flex
Sass - Syntactically Awsome Style Sheet
SassはCSSを拡張したメタ言語である。
SASS記法(拡張子 .sass
)のほかに後発のSCSS記法(拡張子 .scss
)がある。
Sassコンパイラ
-
Dart Sass
-
LibSass
- プロジェクトページ https://sass-lang.com/libsass/
- GitHub https://github.com/sass/libsass
-
2020年10月時点で非推奨となった
-
Ruby Sass
- https://sass-lang.com/ruby-sass/
- Sass登場時(2006年頃)から利用された
- 2019年3月時点でサポート打ち切りとなった
環境構築
Visual Studio Codeを使う場合、以下の拡張機能が重宝する。
-
- 本拡張機能は拡張子
.scss
を保存時にCSSファイルやソースマップファイルを生成する
- 本拡張機能は拡張子
SCSS記法
入れ子
https://sass-lang.com/documentation/style-rules/declarations/#nesting
SCSS
|
|
CSS
|
|