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)
transformrotate()
background-imagecolorrgb(), rgba(), hsl(), hsla()
@rules@import, @media
- ショートハンドプロパティ(shorthand properties)
- 一行に複数のプロパティの値を設定できるもの
font, background, padding, border, margin
- カスケード、詳細度、継承
- 継承の制御
inherit, initial, unsetrevert新しい値であるため、ブラウザのサポートは制限されている
- 詳細度の計算
- 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 ::aftercontentプロパティと共に使用。content の値を挿入- CSSで矢印 のように使われることがある
- :
nth-child()table tr:nth-child(2n)1行置きにセレクト
span.class-name と .class-name spanの違い
この2つの違いが理解できていない。そもそも後者の構文は合っている?
CSSの構成要素
display: inline-blockbackgroundbackground-imagebackground-repeatno-repeat, repeat-x, repeat-y, repeat;
background-size- <length>, <percentage>,
cover, contain
- <length>, <percentage>,
- <gradient>
background-attachmentscroll, fixed, localwriting-mode- CSS論理的プロパティと値
- 複数の書き込みモードを使用していない場合は、現時点では物理バージョンを推奨
overflow- CSS値と単位
object-fitbox-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, obliquefont-wight normal, bold, lighter, bolder, 100~900text-transform none, uppercase, lowercase, full-widthtext-decoration none, underline, overline, line-throughtext-decoration-line, text-decoration-style, text-decoration-color
text-shadowtext-align left, right, center, justifyjustifyは慎重に検討する必要がある。hyphensなどの代替案も検討
line-heightletter-spacing word-spacinglist-style-type list-style-position list-style-imagelist-style-imageよりbackground-imageプロパティファミリーを使うほうが良い
<ol start="4" reversed><li value="6">
@font-face
CSSレイアウト
display block inline inline-block flex gird float tablepositionstatic relative absolute fixed sticky- 段組みレイアウト
column-count column-width flex-flow flex-directionflex-wrapの一括指定flex flex-grow flex-shrink flex-basisの一括指定align-itemsalign-selfjustify-contentflex-start flex-end center space-around space-between
grid grid-template-columns gap grid-auto-rowsgrid-column-start grid-column-end grid-row-start grid-row-endgrid-column grid-rowgrid-template-areasgrid-area
position static relative absolute fixed stickyz-index
multicol column-count column-width column-gap column-rulecolumn-rule-color column-rule-style column-rule-widthbreak-insidepage-break-inside(古いプロパティ)
- Responsive Design
- media query
@mediamedia-typeand (media-feature-rule) {}media-typeallprint screen speechmedia-feature-rulewidth height min-* max-*orientationportrait landsacapehoverpointer
multicol flex gridpicture srcset- responsive typograpy
- meta viewport
- initial-scale height minimum-scale maximum-scale user-scalable
- media query
- ブラウザで機能がサポートされているか? https://caniuse.com/