MDN Web docs ウェブ開発を学ぶ (CSS – Styling the Web)
MDNで、CSSの基礎を再確認した時の覚書です。普段あまり使わないタグを中心に、書き留めておきます。
CSS
CSSの第一歩
- CSSリファレンス
list-style-type
- 文字を指定できる
- ディセンダント・コンビネーター
- これは2つの異なるセレクタのあいだにスペースを設けて、要素を限定させる
- adjacent sibling combinator:アジェイセント・シブリング・コンビネーター
- セレクタ同士の間に + を入れ、前要素の直後の要素に限定させる
- 状態に基づいてスタイリングする
a:link, a:visited, a:hover
など
calc()
CSS内で簡単な計算calc(90% - 30px)
transform
rotate()
background-image
color
rgb(), rgba(), hsl(), hsla()
@rules
@import, @media
- ショートハンドプロパティ(shorthand properties)
- 一行に複数のプロパティの値を設定できるもの
font, background, padding, border, margin
- カスケード、詳細度、継承
- 継承の制御
inherit, initial, unset
revert
新しい値であるため、ブラウザのサポートは制限されている
- 詳細度の計算
- 1000:
style
属性、100: IDセレクター、10: クラスセレクター・属性セレクター・疑似クラス、1: 要素セレクター、疑似要素 - 低レベルの詳細度でスコアを稼いでも、高レベルのスコア一つが勝つ
- 1000:
!important
低レベルでも、指定したプロパティ値を有効とする- セレクター一覧
- 要素・クラス・ID
- 属性
a[title] {}
a[href="https://example.com"] {}
- 擬似クラス・疑似要素
a:hover {}
擬似クラスp::first-line {}
疑似要素
- 結合子
- 子結合子 (
>
)- article > p {}
<article>
要素の直接の子である段落
- article > p {}
- 子孫結合子 ( )
- article p {}
- 隣接兄弟結合子 (
+
) 1つ目 - 一般兄弟結合子 (
~
) それ移行
- 子結合子 (
- 属性セレクター
[attr] [attr=value] [attr~=value1 value2]
(value1 and value2)[attr!= value1 vallue2]
(value1 or value2)[attr^=value]
(valueで始まる][attr!=value]
(valueで終わる)[attr*=value]
(文字列の任意の場所のvalue)
[...i]
閉じカッコの前のiで、大文字小文字の区別なし- 新しい[….s] は、通常大文字小文字が区別されないコンテキストで、区別するようにする。ただし、ブラウザのサポートがまだ多くない。
::before ::after
content
プロパティと共に使用。content の値を挿入- CSSで矢印 のように使われることがある
- :
nth-child()
table tr:nth-child(2n)
1行置きにセレクト
span.class-name と .class-name spanの違い
この2つの違いが理解できていない。そもそも後者の構文は合っている?
CSSの構成要素
display: inline-block
background
background-image
background-repeat
no-repeat, repeat-x, repeat-y, repeat;
background-size
- <length>, <percentage>,
cover, contain
- <length>, <percentage>,
- <gradient>
background-attachment
scroll, fixed, local
writing-mode
- CSS論理的プロパティと値
- 複数の書き込みモードを使用していない場合は、現時点では物理バージョンを推奨
overflow
- CSS値と単位
object-fit
box-sizing
:nth-child()
odd
(奇数)even
(偶数) <An+B>border-collapse collapse separate
- CSSバリデーター
- HTMLバリデーター
- MDN compatibility data repository. (ブラウザの互換性)
- MDN コードの例の CSS ガイドライン
- スタイルシートで最初にすべての一般的なスタイルを設定することを推奨する
body, p, h1-h5, ul, ol, table, a
- Object Oriented CSS (OOCSS)
- OOCSS の標準的な例は、The Media Object として記述されているパターン
- BEMの命名規則
- その他の一般的なアプローチ
- Jonathan Snook によって作成された CSSのスケーラブルでモジュール式のアーキテクチャ(SMACSS)
- Harry Roberts の ITCSS
- Yahoo! によって最初に作成された Atomic CSS(ACSS)
- CSSのビルドシステム
- 最も人気のあるプリプロセッサは Sass 、Sass の基礎知識
- ポストプロセッサの例としては、cssnano https://cssnano.co/ リンク切れ 2024/3/5
テキストの装飾
- ウェブセーフフォントのリスト
font-style normal, italic, oblique
font-wight normal, bold, lighter, bolder, 100~900
text-transform none, uppercase, lowercase, full-width
text-decoration none, underline, overline, line-through
text-decoration-line, text-decoration-style, text-decoration-color
text-shadow
text-align left, right, center, justify
justify
は慎重に検討する必要がある。hyphens
などの代替案も検討
line-height
letter-spacing word-spacing
list-style-type list-style-position list-style-image
list-style-image
よりbackground-image
プロパティファミリーを使うほうが良い
<ol start="4" reversed>
<li value="6">
@font-face
CSSレイアウト
display block inline inline-block flex gird float table
position
static relative absolute fixed sticky
- 段組みレイアウト
column-count column-width
flex-flow flex-direction
flex-wrap
の一括指定flex flex-grow flex-shrink flex-basis
の一括指定align-items
align-self
justify-content
flex-start flex-end center space-around space-between
grid grid-template-columns gap grid-auto-rows
grid-column-start grid-column-end grid-row-start grid-row-end
grid-column grid-row
grid-template-areas
grid-area
position static relative absolute fixed sticky
z-index
multicol column-count column-width column-gap column-rule
column-rule-color column-rule-style column-rule-width
break-inside
page-break-inside
(古いプロパティ)
- Responsive Design
- media query
@media
media-type
and (
media-feature-rule
) {}
media-type
allprint screen speech
media-feature-rule
width height min-* max-*
orientation
portrait landsacape
hover
pointer
multicol flex grid
picture srcset
- responsive typograpy
- meta viewport
- initial-scale height minimum-scale maximum-scale user-scalable
- media query
- ブラウザで機能がサポートされているか? https://caniuse.com/