CSS


構文

コメントアウト

/* コメント */ /* 複数行コメント */

値の単位

絶対長

Unit名前換算
cmセンチメートル1cm = 96px/2.54
mmミリメートル1mm = 1/10cm
Q1/4ミリメートル1Q = 1/40cm
inインチ1in = 2.54cm = 96px
pcパイカ1pc = 1inの1/6
ptポイント1pt = 1inの1/72
pxピクセル1px = 1inの1/96

相対長

Unit関係先
em親要素のフォントサイズ
exその要素のフォントの文字"x"の高さ
chその要素のフォントの文字"0"の幅
remルート要素のフォントサイズ
lhその要素のline-hightプロパティと同じ
vwビューポート幅の1%
vhビューポート高さの1%
vminビューポート幅と高さの小さいほうの1%
vmaxビューポート幅と高さの小さいほうの1%

アニメーション

div { animation: My_Animation 1s linear 0s infinite normal; } @keyframes My_Animation { 0% { background: red; } 100% { background: blue; } }

前半は以下と同じ

div { animation-name: My_Animation; animation-duration: 1s; animation-timing-function: linear; animation-delay: 0s; animation-iteration-count: infinite; animation-direction: normal; }

animation-timing-functionで有効な値はeaseease-inease-outease-in-outlinearstep-startstep-endなど

animation-iteration-countで有効な値は数値もしくはinfiniteなど

animation-directionで有効な値はnormalreversealternatealternate-reverseなど

共通の値

初期値

CSSの全てのプロパティはinitialで初期値を指定できる。

unset

親要素から継承できる場合は継承値、できない場合は初期値になる。

CSS値関数

数学関数

関数概要
calc()基本的な演算
min()最小値
max()最大値
clamp(MIN, VAL, MAX)
round()四捨五入
mod(a, b)あまり
rem(a, b)あまり
sin()正弦
cos()余弦
tan()正接
asin()逆正弦
acos()逆余弦
atan()逆正接
atan2(x, y)逆正接
pow(x, y)xのy乗
sqrt()2乗根
hypot(...x)平方和の根
log()対数
exp()ネイピア数の指数関数
abs()絶対値
sign()符号関数

フィルター関数

関数概要
blur(radius)ぼかし
brightness(amount)明るさ
contrast(amount)コントラスト
drop-shadow(length, length, length, color)ドロップシャドウ
grayscale(amount)グレースケール
hue-rotate(angle)色相
invert(amount)色反転
opacity(amount)半透明
saturate(amount)彩度
sepia(amount)セピア

その他

関数概要
rgb(R, G, B, A?)RGB色指定
hsl(H[deg], S[%], L[%], A[%])HSL色指定
linear-gradient()線形グラデーション
radial-gradient()放射グラデーション
conic-gradient()扇形グラデーション
repeating-linear-gradient()繰り返す線形グラデーション
repeating-radial-gradient()繰り返す放射グラデーション
repeating-conic-gradient()繰り返す扇形グラデーション
linear()線形補間イージング
cubic-bezier()3次ベジェ曲線イージング
steps()ステップイージング

プロパティ

要素の大きさ

height: 20px; width: 20px;
min-height: 0.5em; max-height: 0.5em; min-width: 0.5em; max-width: 0.5em;

要素の枠

border: solid 3px #000000;

内側の余白

padding: 10px; padding-top: 10px; padding-right: 10px; padding-left: 10px; padding-bottom: 10px;

このようにすると、上下が10px、左右が20pxになる

padding: 10px 20px;

これだと上、右、下、左

padding: 10px 20px 30px 40px;

外側の余白

margin: 10px; margin-top: 10px; margin-right: 10px; margin-left: 10px; margin-bottom: 10px;

このようにすると、上下が10px、左右が20pxになる

margin: 10px 20px;

これだと上、右、下、左

margin: 10px 20px 30px 40px;

accent-color

一部のinput要素などのアクセントカラーを変更する。

accent-color: #64ec86;

backdrop-filter

要素の背後にグラフィック効果を適用する。

backdrop-filter: blur(10px); backdrop-filter: invert(80%); backdrop-filter: sepia(90%);

background-color

background-color: #64ec86;

background-image

背景画像を指定する。

background-image: url("../../media/examples/lizard.png");

border-collapse

表のセルの間に隙間を作るかどうか。 collapse(作らない)かseparate(作る)で指定。

border-collapse: collapse;

box-shadow

/* 無くす場合 */ box-shadow: none; /* オフセット(X) | オフセット(Y) | 色 */ box-shadow: 60px -16px teal; /* オフセット(X) | オフセット(Y) | ブラー半径 | 色 */ box-shadow: 10px 5px 5px black; /* オフセット(X) | オフセット(Y) | ブラー半径 | 拡散半径 | 色 */ box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); /* inset | オフセット(X) | オフセット(Y) | 色 */ box-shadow: inset 5em 1em gold; /* 複数の影はカンマで区切る */ box-shadow: 3px 3px red, -1em 0 0.4em olive;

box-sizing

枠を外側ではなく内側に膨らませる場合:

box-sizing: border-box;

caret-color

input要素内などのキャレット(テキスト入力カーソル)の色を変更する。

caret-color: red;

color

文字の色を指定する。

color: #64ec86;

cursor

マウスカーソルの種類。画像を指定することもでき、その場合は画像指定の後にカーソルの種類も指定する必要がある。

cursor: help; cursor: url(hand.cur), pointer;
カーソルの種類
概要
defaultデフォルト
none非表示
context-menu右クリックメニューが利用できる
helpヘルプ
pointerポインター
progressビジー状態だが操作できる
waitビジー状態で操作できない
cellセル
crosshairビットマップの選択
textテキスト
vertical-text縦書きテキスト
aliasエイリアスやショートカットが作成される
copyコピーされる
move移動される
no-dropドロップできない
not-allowed操作が禁止されている
grabつかめる
grabbingつかんでいる
all-scrollスクロール可能
col-resize水平方向にスクロール可能
row-resize垂直方向にスクロール可能
n-resize辺の移動(上)
e-resize辺の移動(右)
s-resize辺の移動(下)
w-resize辺の移動(左)
ne-resize辺の移動(右上)
nw-resize辺の移動(左上)
se-resize辺の移動(右下)
sw-resize辺の移動(左下)
ew-resize辺の移動(左右)
ns-resize辺の移動(上下)
nesw-resize辺の移動(右上左下)
nwse-resize辺の移動(左上右下)
zoom-in拡大
zoom-out縮小

direction

文字の向きをltr(左から右)またはrtl(右から左)で指定する。

direction: ltr;

display

要素を非表示にする例:

display: none;

filter

背後の要素を色反転する例:

filter: invert();

flex

flexボックス内での横幅の比を指定する。

flex: 1;

font-family

フォントの指定。

font-family: '';

.ttfファイルを読み込んで新しいフォントを定義する場合は以下の行を追加する。

@font-face { font-family: 'MyFont'; src: url(〇〇.ttf); }

font-size

フォントの大きさ。

font-size: medium;
指定できる値

指定できる値:[length][percentage]xx-smallx-smallsmallmediumlargex-largexx-largexxx-largelargersmaller

font-weight

フォントの太さ。
指定できる値:[number]normalboldlighterbolder

font-weight: bold;

height

height: 20px;

letter-spacing

文字と文字の間隔。

letter-spacing: 0.5em;

line-height

文章の行間。
指定できる値:normal[number][length][percentage]

line-height: normal;

overflow

visibleで見えてはみ出す、hiddenで見えずにはみ出す、scrollでスクロール、autoでおさまらないときだけスクロール

overflow: visible; overflow-x: visible; overflow-y: visible;

list-style

箇条書きの点の部分。

list-style: square;
指定できる値の種類
概要
none非表示
disc黒丸
circle白丸
square黒四角
decimal数値
cjk-decimal漢数字
decimal-leading-zeroゼロ埋め数値
lower-roman小文字のローマ数字
upper-roman大文字のローマ数字
lower-greek小文字の古代ギリシャ文字
lower-latin小文字のASCII文字
upper-latin大文字のASCII文字
cjk-earthly-branch十二支
cjk-heavenly-stem十干
hiraganaひらがな
hiragana-irohaいろは
japanese-formal日本の公的漢数字
japanese-informal日本の日常的な数値
katakanaカタカナ
katakana-irohaカタカナいろは

opacity

要素の不透明度。

opacity: 1;

outline

要素をフォーカスしたとき(input要素にTabでフォーカスするなど)の枠。

outline: solid 1px red;

overflow-wrap

単語中でも無理矢理改行する:

overflow-wrap: break-word;

overscroll-behavior

スクロールが端まで達した後のスクロールで、親要素のスクロールをしないようにする:

overscroll-behavior: none;

pointer-events

クリックやスクロールが貫通するようにする:

pointer-events: none;

resize

ブロック要素をリサイズ可能にする。値はbothhorizontalverticalnone

resize: horizontal;

text-align

テキストを何揃えにするか(水平).

指定できる値:startendleftrightcenterjustifymatch-parent

text-align: left;

text-decoration

テキスト装飾を無効化する例(リンク要素など):

text-decoration: none;

text-decoration-color

下線や取り消し線など、テキストデコレーションの色。

text-decoration-color: #64ec86;

text-decoration-line

指定できる値:noneunderlineoverlineline-through

text-decoration-line: underline;

text-decoration-style

指定できる値:soliddoubledotteddashedwavy

text-decoration-style: solid;

text-decoration-thickness

指定できる値:autofrom-font[length][percentage]

text-decoration-thickness: auto;

text-emphasis

テキストを強調するためにふる点(圏点)。

text-emphasis: '、';

text-indent

text-indent: 1em;

text-overflow

あふれたテキストの表示。文字列を指定することもできる。あふれたテキストを「...」にする例:

text-overflow: ellipsis;

text-shadow

テキストに影を付ける。指定方法は「左右、上下、半径、色」。

/* オフセット(X) | オフセット(Y) | ブラー半径 | 色 */ text-shadow: 1px 1px 2px black; /* 色 | オフセット(X) | オフセット(Y) | ブラー半径 */ text-shadow: #fc0 1px 0 10px; /* オフセット(X) | オフセット(Y) | 色 */ text-shadow: 5px 5px #558abb; /* 色 | オフセット(X) | オフセット(Y) */ text-shadow: white 2px 5px; /* オフセット(X) | オフセット(Y) */ text-shadow: 5px 10px;

transition

要素が変化するときに、アニメーションを伴うようになる。

transition: 1s;

user-select

テキストの選択を禁止する:

user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;

vertical-align

縦向きの何揃えか。
topmiddlebottombaselineから選択。

vertical-align: top;

white-space

主な値はnormalnowrappre

white-space: pre;

width

width: 20px;

z-index

要素が重なったとき、この値が大きいほど手前に表示される。

z-index: 100;

zoom

zoom: 150%;

セレクター

全称セレクター

* { color: green; }

要素型セレクター

/* すべての<a>要素。 */ a { color: red; }

クラスセレクター

/* class="spacious"であるすべての要素 */ .spacious { margin: 2em; } /* class="spacious"であるすべての<li>要素 */ li.spacious { margin: 2em; } /* "spacious"および"elegant"の両方をクラスリストに含む<li>要素すべて */ /* 例えば、class="elegant retro spacious" */ li.spacious.elegant { margin: 2em; }

IDセレクター

/* id="demo" のついた要素 */ #demo { border: red 2px solid; }

属性セレクター

/* title属性を持つ<a>要素 */ a[title] { color: purple; } /* hrefが"https://example.org"と一致する<a>要素 */ a[href="https://example.org"] { color: green; } /* hrefに"example"を含む<a>要素 */ a[href*="example"] { font-size: 2em; } /* hrefが"org"で終わる<a>要素 */ a[href$=".org"] { font-style: italic; } /* <a>要素のclass属性に"logo"という語が含まれているもの */ a[class~="logo"] { padding: 2px; } /* URLのどこかに"cAsE"があるリンクに一致 大文字小文字の区別しない */ a[href*="cAsE" i] { color: pink; } /* "https"で始まり".org"で終わるリンク */ a[href^="https"][href$=".org"] { color: green; }

セレクターリスト

span, div { border: red 2px solid; }

子孫結合子

/* "my-things" リストの子孫のリスト項目 */ ul.my-things li { margin: 2em; }

子結合子

/* "my-things"クラスを持つリストの子要素であるリスト項目 */ ul.my-things > li { margin: 2em; }

後続兄弟結合子

img ~ p { color: red; }

次兄弟結合子

/* 画像の直後に来る段落 */ img + p { font-weight: bold; }

擬似クラス

/* ユーザーのポインターが乗っているすべてのボタン */ button:hover { color: blue; }
擬似クラス概要
:fullscreen現在全画面モードの要素
:picture-in-picture現在ピクチャインピクチャモードの要素
:autofill<input>をブラウザーが自動補完した場合
:enabledユーザーインターフェイス要素が有効な状態である
:disabledユーザーインターフェイス要素が無効な状態である
:read-onlyユーザーが変更できない要素
:read-writeユーザーが編集することができる要素
:placeholder-shownプレイスホルダーテキスト, 例えばplaceholder属性のものが表示されている<input>および<textarea>要素
:default一連の要素のうち, 1つ以上の既定のUI要素
:indeterminateUI要素が不定状態になっている場合
:blankユーザーが入力する要素が空である場合. 空文字列が入っているか, その他の空入力であること.
:valid内容が妥当である要素
:invalid無効な内容を持つ要素
:in-rangeスライダーコントロールなどの範囲制限のある要素で, 選択した値が許容範囲内にある場合
:out-of-rangeスライダーコントロールなどの範囲制限のある要素で, 選択した値が許容範囲外の場合
:requiredフォーム要素が必須項目である場合
:optionalフォーム要素が省略可能である場合
:user-invalid不正確な値が入力されている要素
:dir()文書の言語によって決定される書字方向に基づいて要素を選択します.
:lang()内容物の言語に基づいて要素を選択します.
:any-link要素が:linkまたは:visitedのいずれかに一致する場合
:linkまだ訪問していないリンク
:visited訪問したことのあるリンク
:local-link絶対URLが対象URLと同じリンク, 例えば同じページへのアンカーリンクである場合
:target文書の URL の対象である要素
:target-within文書のURLの対象である要素だけでなく, 文書URLの対象である子孫を持つ要素にも一致します.
:scopeセレクターを照合するための参照点となる要素
:playingその要素が再生可能なメディア要素であり, 再生中である
:pausedその要素が再生可能なメディア要素であり, 一時停止中である
:current表示されている要素またはその祖先
:past完全に:current要素の前に発生する要素
:future完全に:current要素の後に発生する要素
:root文書のルートである要素
:emptyホワイトスペース文字以外に子がない要素
:nth-childAn+Bの表記を用いて, 兄弟要素のリストから要素を選択します.
:nth-last-childAn+Bの表記を用いて, 兄弟要素のリストから, リストの末尾から逆方向に数えて要素を選択します.
:first-child兄弟のうちの最初の要素
:last-child兄弟のうちの最後の要素
:only-child要素に兄弟がいない場合
:nth-of-typeAn+Bの表記を用いて, 兄弟要素のリストから, 特定の型に一致する要素を選択します.
:nth-last-of-typeAn+Bの表記を用いて, 兄弟要素のリストから, リストの末尾から逆方向に数えて特定の型に一致する要素を選択します.
:first-of-type兄弟のうちの最初の特定の型に一致する要素
:last-of-type兄弟のうちの最後の特定の型に一致する要素
:only-of-type指定された型セレクターで兄弟要素がない要素
:hoverユーザーがポインティングデバイスでアイテムを指した場合
:activeアイテムがクリックされるなど, ユーザーによってアクティブになっているとき
:focus要素にフォーカスがあるとき
:focus-visible要素にフォーカスがあり, ユーザーエージェントがその要素のフォーカスを可視化する必要があると判断した場合
:focus-within:focusが適用される要素に加え, :focusが適用される子孫要素を持つ要素にも一致します.
:is()指定されたリストのセレクターのどれかに一致する要素
:not()引数で表されない要素
:where()指定されたリストのセレクターのいずれかに一致する要素
:has()付属の要素に対してアンカーを付けたときに, 相対セレクターのどれかが一致する場合

擬似要素

/* すべての<p>要素の最初の行です. */ p::first-line { color: blue; text-transform: uppercase; }
擬似要素概要
::after選択した要素の最後の子要素
::backdrop何らかの要素が全画面モードで表示される直下に直接表示されるviewportの寸法のボックス
::before選択した要素の最初の子要素
::cue選択された要素内のWebVTTキュー
::first-letterブロックレベル要素の最初の行の最初の文字
::first-lineブロックレベル要素の最初の行
::file-selector-buttonthe button of an <input> of type="file".
::markerリスト項目の箇条書き記号ボックス(ふつうは黒丸や番号)
::part()一致するpart属性を持つシャドウツリー内の要素
::placeholder<inputまたは<textarea>要素のプレイスホルダー文字列
::selectionユーザーが(テキストをマウスでクリックやドラッグすることで)選択した文書の一部
::slotted()HTML テンプレート内にあるスロットに配置された任意の要素

もくじ

ページのトップへ