参考:Web カラー一覧
カラーネーム | 16進数 |
---|
CSS(Cascading Style Sheets、カスケーディング・スタイル・シート)とは、ウェブページのスタイルを指定するための言語です。 ワープロソフトなどで作成される文書も含めて、文書のスタイルを指定する技術全般をスタイルシートといいます。HTML などで作成されるウェブページにスタイルを適用する場合には、スタイルシート言語の1つである CSS が一般的に利用されています。
CSS は、HTML と組み合わせて使用する言語です。 HTML がウェブページ内の各要素の意味や情報構造を定義するのに対して、CSS ではそれらをどのように装飾するかを指定します。
初期の頃の HTML は、とても単純で情報構造を定義するだけでしたが、次第に見栄えをよくするためにいろいろな装飾ができるような要素(タグ)や属性が追加されていきました。そのため、文書の情報構造が分かりにくくなったり、コンピュータや検索エンジンに理解されないでたらめな文書構造になる恐れが出てきてしまいました。また、HTML の要素(タグ)をどのように表示するかは、ブラウザによって異なることがあります。 HTML タグを駆使してある閲覧環境では見栄え良くレイアウトできたとしても、 他の閲覧環境ではまったく意図しないレイアウトになってしまうかも知れないわけです。
そこで、HTML4.01 では、HTML 文書から見栄えに関する指定を分離することが望ましいとされました。つまり、HTML では文書構造のみを定義して、スタイルについてはスタイルシートで指定することが推奨されたわけです。
ただし、HTML4.01 では、例えばセンター揃えをする <center>、フォントの見栄えを指定する <font> などの装飾目的の要素や、色・サイズ・ボーダーなどを指定する装飾目的の color や bgcolor、size、border などの属性については「非推奨」とされながらも使用することができてしまいます。しかし、HTML5 では、これらは完全に廃止されました(ただし、ブラウザにもよりますが、過去に作成された文書もありますので、それらを表示するためにエラーになるとかまったく表示されないといったことはないと思います)。
CSS のバージョンには、CSS1、CSS2、CSS2.1 そして CSS3 があります。ただし、CSS にはバージョンを示す記述がありませんので、どのバージョンで記述したのかを示すことはできません。ただ、CSS3 で追加された プロパティを使用すれば、それは CSS3 でしょうし、使用しなければ CSS3 かもしれないし CSS2.1 かもしれないというわけです。
CSS は、例外もありますが、基本的に下位互換性があります(以前のバージョンの記述が新しいバージョンでも正しく動作します)ので、最新のブラウザで表示している限りは全く問題はありません。
2011年6月に勧告された、CSS2 の改定版です。CSS2 の定義が不明瞭であったことからブラウザごとに非互換が生じたため、曖昧な記述を明確にするといった改訂が行われました。
CSS2 のエラー修正、一部プロパティの削除、説明変更、CSS3 を視野に入れた仕様変更など、CSS2 を整理・修正したものとなっています。
CSS3 以降では CSS 2.1 を中核として、新たな機能の追加や改良をモジュールとすることで実現していますので、2011年以降機能ごとに順次勧告されています。
角丸・画像ボーダー・ドロップシャドウ・グラデーション・透明度・アニメーションなどの新しい機能が追加されいます。
スタイルシートでいろいろな要素の属性値を設定し見栄えを変更します。
属性値はその属性によってどのような種類かが決まりますが、主に色や数値、時間などがあります。
色を名称や16進数で指定することができます。色の指定は光の三原色R(Red)、G(Green)、B(Blue)の加法混色によって行われます。色の指定はそれぞれの色を1バイト(8ビット)を使った256(=28)段階で行います。3色の混色により指定できる合計色数は3バイト(24ビット(=8×3))を使った約1600万(=224)色になります。
カラーネーム | 16進数 |
---|
よく利用するであろう色には名前が付けられています(右図を参照)。
また、特別な色として、塗らないこと(透明)を指示する transparent があります。
# に続いて、赤緑青をそれぞれ16進数2桁ずつで指定することもできます(上図を参照)。アルファベット部分は大文字でも小文字でも構いません。
また、赤緑青それぞれの2桁が同じ数字のとき、それぞれ1桁に省略することもできます。つまり、#FFFF00 は #FF0 と記述することも可能です。
R(赤)G(緑)B(青)で色を指定します。rgb(R,G,B) と指定します。R、G、Bの部分には 0~255 までの10進数を指定することができます。つまり、rgb(173,255,47) は #ADFF2F と同じ色を示しています。
また、10進数ではなく、0%~100% の割合で指定することもできます。0% が 0、100% が 255 です。
さらに、RGB に加えてアルファ値(透過度)を 0.0(完全に透明)~1.0(完全に不透明)の間で指定できる rgba(R,G,B,A) もあります。
H:hue(色相)、S:saturation(彩度)、L:lightness(明度)で色を指定できます。hsl(H,S,L) と指定します。色相には整数値を指定します。どれだけ大きな値も小さな値も指定できますが、0 = 360xNで、赤を示します。彩度、明度は0~100%で指定します。
さらに、HSL に加えてアルファ値(透過度)を 0.0(完全に透明)~1.0(完全に不透明)の間で指定できる hsla(H,S,L,A) もあります。
C:cyan(水色)、M:magenta(赤紫色)、Y:yellow(黄色)、K:black(黒色)で色を指定できます。cmyk(C,M,Y,K) と指定します。各色を 0.0~1.0 の間で指定します。
いろいろな属性で、属性値として数値を指定することができます。指定できる数値として次のようなものがあります。その種類によって単位も決まります。省略した場合はあらかじめ定められた単位になります。
width、height 属性などで指定されます。これらには次のような単位を指定できます。
単位 | 説明 |
---|---|
em | font-size で使用された場合は親要素で、それ以外では自要素で、 使用されるフォントの大文字のMの高さを基準にした割合 |
ex | font-size で使用された場合は親要素で、それ以外では自要素で、 使用されるフォントの小文字のxの高さを基準にした割合 |
px | ピクセル(規定値) |
pt | ポイント(1/72in) |
pc | パイカ(12 ポイントを 1 とする単位) |
cm | センチメートル(96/2.54px) |
mm | ミリメートル |
q | 四分ミリメートル(0.25mm) |
in | インチ(96px、72pt) |
rem | html 要素の文字サイズに対する割合 |
ch | 要素で使用されるフォントの 0 の幅を基準にした割合 |
vw | ビューポートの幅に対する割合(%) |
vh | ビューポートの高さに対する割合(%) |
vmin | ビューポートの幅と高さのうち、値が小さい方に対する割合(%) |
vmax | ビューポートの幅と高さのうち、値が大きい方に対する割合(%) |
w | 画像の幅 |
h | 画像の高さ |
x | デバイスピクセル比 |
ビューポートとは表示域のことで、表示するデバイスなどで大きさは異なります。vw、vh などはそれに対する割合です。例えば、表示域の横幅が 200mm であるとき 8vw とした場合は 16mm となります。
rowspan、colspan 属性などで指定されます。単位はありません。
x、y 属性などで指定されます。単位はありません。
animation-duration、animation-delay 属性などで指定されます。
単位 | 説明 |
---|---|
min | 分 |
s | 秒(規定値) |
ms | ミリ秒 |
radial-gradient、conic-gradient、transform:rotate などで指定されます。単位を省略することはできません。
単位 | 説明 |
---|---|
deg | 度(円の全周は 360 度) |
grad | グラジアン(円の全周は 400 グラジアン) |
rad | ラジアン(円の全周は 2π ラジアン) |
turn | 回転数(円の全周は 1 回転) |
長さや数などで絶対数ではなく割合を指定することもできます。
単位 | 説明 |
---|---|
% | パーセンテージ(一つ外側の要素に対する割合) |
fr | grid レイアウトでの幅(合計数に対する割合) |
話し声の高さのような、周波数を指定することもできます。
単位 | 説明 |
---|---|
Hz | ヘルツ |
kHz | キロヘルツ |
デバイスの解像度を指定することもできます。
単位 | 説明 |
---|---|
dpi | 1インチあたりのドット数(1インチは 2.54 cm なので、1dpi ≒ 2.54dpcm) |
dpcm | センチメートルあたりのドット数(1インチは 2.54 cm なので、1dpcm ≒ 0.39dpi) |
dppx | ピクセル(px)あたりのドット数(1dppx = 96dpi) |
変数の宣言には -- から始め、続いて変数の名前を書きます。変数名では大文字と小文字が区別されます。
変数の値は変数の後にコロンで区切って記述します。単位も一緒に記述できます。そして、変数を参照したらこの値が呼び出されるようになります。
下の例では、:root に記述していますが、変数を使用する対象であればどのようなセレクタでもかまいません。
変数を定義し値を設定する。
属性値 | 説明 | |
---|---|---|
変数 | 変数の名前(-- から始まる必要がある) | |
値 | 変数に代入される値(改行、>、)、}、]、;、! など、特別な意味を持つ文字は指定できない) |
スタイルシート
:root {
--title-color: blue;
}
宣言した変数を使用するには var() 関数を使用します。
変数の値を参照する。変数が定義されていない場合は代替値を参照する
属性値 | 説明 | |
---|---|---|
変数 | 変数の名前 | |
代替値 | 変数が定義されていない場合に代わりになる値 |
下の例では、title1 は --title-background-color が定義されているので、設定されている値である yellow になります。しかし、--title-background-colorX は定義されていないので、title2 の例のように代替値が指定されていればその値の lime が background-color になりますが、title3 は代替値の指定がないので、規定値である white が設定されます(ただし、属性によっては無視されるかもしれません)。
スタイルシート div { background-color: lightgrey; --title-background-color: yellow; <-- 変数定義(yellow) --> } div.title1 { background-color: var(--title-background-color); <-- 定義済み変数 --> } div.title2 { background-color: var(--title-background-colorX, lime); <-- 未定義変数、代替値あり --> } div.title3 { background-color: var(--title-background-colorX); <-- 未定義変数、代替値なし --> } ボディ <div>デフォルト</div> <div class="title1">定義された変数</div> <div class="title2">定義されていない変数、代替値あり</div> <div class="title3">定義されていない変数、代替値なし</div>
属性値には、文字列や数値以外に関数を指定することもできます。
関数の引数で指定する、長さや座標には px、em、cm などの単位をつけた数値や % を付けた割合を指定することができます。
座標は参照ボックスの左上隅が原点で、 X 座標が右方向、 Y 座標が下方向になります。% で指定された長さはすべて、参照ボックスのサイズを使用して算出されます。
主にクリッピングの図形を定義するときに使用します。クリッピングも参照してください。
関数 | 引数 | 説明 | |||
---|---|---|---|---|---|
inset(長さ [round 角丸半径]) | 長さ:元の図形からの内側への隔たり(注1) 角丸半径:角を丸くするときの半径(注2) 規定値:0px | 内部の長方形を定義する | |||
circle(半径 [at 中心点]) | 半径:円の半径(注3) 中心点:X座標 Y座標規定値:参照ボックスの中心 (空白区切り) | 円を定義する | |||
ellipse(横半径 縦半径 [at 中心点]) | 横半径:X 方向の半径 縦半径:Y 方向の半径 中心点:X座標 Y座標規定値:参照ボックスの中心 (空白区切り) | 楕円を定義する | |||
polygon([塗りつぶし] 頂点座標, 頂点座標, ... ,頂点座標) |
頂点座標:X座標 Y座標 (空白区切り) | 多角形を定義する |
(注1)
|
(注2)
|
(注3)
|
スタイルシート img { border: solid 6px lightgrey; padding: 10px; background-color: lime; } ボディ <img src="bear.png" style="clip-path:inset(20px 10px round 20px/10px);"> <-- 水平方向 20px /垂直方向 10px --> <img src="bear.png" style="clip-path:circle(20px at 20px 40px);"> <img src="bear.png" style="clip-path:ellipse(40px 10px at 30px 40px);"> <img src="bear.png" style="clip-path:polygon(38px 0px, 14px 72px, 76px 28px, 0px 28px, 62px 72px);">
属性値の数値を計算したり、属性値を参照したりするときに使用します。
関数 | 引数 | 説明 |
---|---|---|
calc(式) | 式:加(+)減(-)乗(*)除(/) ただし、加(+)減(-)の演算子の前後は空白が必要 括弧で計算順序を変更できる | 単位付きの数値の演算を行う |
attr(属性名) | 属性名:属性の名称(独自データ属性も可) | 選択された要素の属性の値を受け取る |
minmax(最小値, 最大値) | 最小値:取り得る最小の値 最大値:取り得る最大の値 | 最小値と最大値の間で最適な値を取る |
repeat(回数, 長さ) | 回数:繰り返し回数 長さ:空白区切りで複数指定できる | 長さの属性を指定した回数分繰り返す |
calc を使用して、異なる単位の数値が混在した計算をすることができます。
加(+)減(-)乗(*)除(/) の演算ができますが、+ と - の前後には 空白が必要です(* と / の前後には空白は要りませんが空白を入れて統一したほうがよいでしょう)。
スタイルシート span { display: inline-block; font-size: 9px; } ボディ <div style="width:400px;height:50px;border:solid 1px gray;"> <span style="width:calc(50% + 40px); background-color:yellow;">calc(50% + 40px)</span> <span style="width:calc(50% - (30px * 2)); background-color:yellow;">calc(50% - (30px * 2))</span> </div> ↑↑ 空白が必要
attr の引数に指定した属性名の値を取得できます。属性名には、data- から始まる独自データ属性も指定できます。次の例では、data-importance が独自データ属性です。
attr については、E::before も参照してください。
スタイルシート div.style::after { content: " style 属性は、" attr(style) " です。"; } div[data-importance]::before { content: attr(data-importance) "→ "; color: red; } ボディ <div class="style" style="width:300px;">この div 要素の</div> <br> <div data-importance="重要">attr() の説明</div>
minmax や repeat は主に フレックスボックス や グリッド で使用され、可変長の幅を指定したり、同じ属性の繰り返しを指定したりします。
下の例では、A の列に minmax(50px, 400px) が指定されていますので、グリッドの幅の変化に伴って 50px から 400px の間で変化します。また、repeat によって B から E の列は幅が 45px と 3em が 2回繰り返され、1 から 4 までの行は高さが 20px に設定されています。
別ウィンドウで表示して、ウィンドウの幅を変えてみてください。
スタイルシート div.container { display:grid; margin:20px 30px; } div.area { border:solid 1px lightgrey; font-size: 9px; } div.h { background-color: lightyellow; } div.s { background-color: lightcyan; } ボディ <div class="container" style="grid-template-columns:100px minmax(50px, 400px) repeat(2, 45px 3em); grid-template-rows:30px repeat(4, 20px) 30px;"> <div class="area h"> </div><div class="area h">A</div><div class="area h">B</div><div class="area h">C</div><div class="area h">D</div><div class="area h">E</div> <div class="area">1</div><div class="area">A1</div><div class="area">B1</div><div class="area">C1</div><div class="area">D1</div><div class="area">E1</div> <div class="area">2</div><div class="area">A2</div><div class="area">B2</div><div class="area">C2</div><div class="area">D2</div><div class="area">E2</div> <div class="area">3</div><div class="area">A3</div><div class="area">B3</div><div class="area">C3</div><div class="area">D3</div><div class="area">E3</div> <div class="area">4</div><div class="area">A4</div><div class="area">B4</div><div class="area">C4</div><div class="area">D4</div><div class="area">E4</div> <div class="area s">5</div><div class="area s">A5</div><div class="area s">B5</div><div class="area s">C5</div><div class="area s">D5</div><div class="area s">E5</div> </div>
色を指定するときに使用します。
関数 | 引数 | 説明 |
---|---|---|
rgb(赤,緑,青) | 赤緑青:0~255または0%~100% | RGB値で色の指定を行う |
rgba(赤,緑,青,不透明度) | 赤緑青:0~255または0%~100% 透明度:0(透明)~1(不透明) | RGB値と不透明度で色の指定を行う |
hsl(色相,彩度,輝度) | 色相:0°~360° 彩度:0%(純色)~100%(灰色) 輝度:0%(黒)~50%(純色)~100%(白) | 色相、彩度、輝度の3要素で色の指定を行う |
hsla(色相,彩度,輝度,不透明度) | 色相:0°~360° 彩度:0%(純色)~100%(灰色) 輝度:0%(黒)~50%(純色)~100%(白) 透明度:0(透明)~1(不透明) | 色相、彩度、輝度の3要素と不透明度で色の指定を行う |
rgb の例です。
下側の例(熊の絵)では、背景画として熊の絵を設定して、その上に背景色の不透明度を変えた文字列を表示しています。
<span style="background-color:rgb(127,127,255);">rgb(127,127,255)</span> <span style="background-color:rgba(255,0,0,0.8);">rgba(255,0,0,0.8)</span>
hsl の例です。
下側の例(熊の絵)では、背景画として熊の絵を設定して、その上に背景色の不透明度を変えた文字列を表示しています。
<span style="background-color:hsl(90,50%,75%);">hsl(90,50%,75%)</span> <span style="background-color:hsla(180,100%,50%,0.75);">hsla(180,100%,50%,0.75)</span>
色を指定するときに使用します。
関数 | 引数 | 説明 |
---|---|---|
linear-gradient | 下記参照(注1) | 線形グラデーションを指定する (直線的に色が変化する) |
repeating-linear-gradient | ||
radial-gradient | 下記参照(注2) | 円形グラデーションを指定する (中心から広がるように色が変化する) |
repeating-radial-gradient | ||
conic-gradient | 下記参照(注3) | 円錐グラデーションを指定する (中心点の周りを回りながら色が変化する) |
repeating-conic-gradient(開始, 途中, ... ,終了) |
属性値 | 説明 | 必須 |
---|---|---|
角度 | グラデーションの方向(上下方向が 0deg) あるいは to に続いて top、bottom、left、right(規定値:0deg) | ○ |
開始 | 空白で区切った、グラデーションの開始色とその開始位置(規定値:0%) | ○ |
途中 | 空白で区切った、グラデーションの途中色とその開始終了位置(規定値:前後の位置の中間) | × |
終了 | 空白で区切った、グラデーションの終了色とその終了位置(規定値:100%) | ○ |
○位置は、25% や 30px のように数値と単位で開始位置からの距離を指定する。省略することもできる。
○位置が一つも書かれていない場合は指定された色の数で均等割り
(注2)属性値 | 説明 | 必須 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
形状 | グラデーションの形状(circle か ellipse)(規定値:ellipse) | ○(大きさとどちらか) | ||||||||||||
大きさ | キーワードまたはグラデーションの半径(1つなら円、2つなら楕円)
| ○(形状とどちらか) | ||||||||||||
位置 | グラデーションの中心位置またはキーワード(規定値:center)
| × | ||||||||||||
開始 | 空白で区切った、グラデーションの開始色とその開始位置(規定値:0%) | ○ | ||||||||||||
途中 | 空白で区切った、グラデーションの途中色とその開始終了位置(規定値:前後の位置の中間) | × | ||||||||||||
終了 | 空白で区切った、グラデーションの終了色とその終了位置(規定値:100%) | ○ |
○位置は、25% や 30px のように数値と単位で中心からの距離を指定する。省略することもできる。
○位置が一つも書かれていない場合は指定された色の数で均等割り
(注3)属性値 | 説明 | 必須 |
---|---|---|
開始 | 空白で区切った、グラデーションの開始色とその開始位置(規定値:0%) | ○ |
途中 | 空白で区切った、グラデーションの途中色とその開始終了位置(規定値:前後の位置の中間) | × |
終了 | 空白で区切った、グラデーションの終了色とその終了位置(規定値:100%) | ○ |
○位置は、25% や 30deg、0.3turn のように数値と単位で角度を指定する。省略することもできる。
○位置が一つも書かれていない場合は指定された色の数で均等割り
repeating-~ は、グラデーションですべてが塗りつぶされないとき、同じグラデーションが繰り返されます。
<div style="background:linear-gradient(30deg, orange, yellow 80px, green);"></div> <div style="background:repeating-linear-gradient(to right, orange, yellow, green 40%);"></div> <div style="background:radial-gradient(circle farthest-side at 25% 20%, orange, yellow 100px, green);"></div> <div style="background:repeating-radial-gradient(ellipse farthest-side at 25% 20%,orange,yellow 50px,green 70px);"></div> <div style="background:conic-gradient(orange 25%, yellow 60%, green);"></div> <div style="background:repeating-conic-gradient(orange 0%, yellow 20%, green 33.3%);"></div>
移動、拡大、縮小、回転、傾斜などの変形を指定するときに transform: に続けて指定します。なお、Safariでは機能しませんが、-webkit- を付けると機能するものもあります。
また、3D での変形のときは、変形させる要素の親要素に 3D であることを意味する transform-style:preserve-3d; と 遠近法の視点との距離を表す perspective 属性が必要になります。
詳しくは、8 変形 を参照してください。
関数 | 引数 | 説明 |
---|---|---|
rotate(回転角度) | 回転角度:数値+単位 | 2D: 要素の中央を中心に時計回りの 2D 回転を指定する。 |
rotate3d (X 座標, Y 座標, Z 座標, 回転角度) | 回転角度:数値+単位 | 3D: 要素の中央を基準にして Z 軸方向に時計回りの 3D 回転を指定する。 |
rotateX(回転角度) | 回転角度:数値+単位 | 3D: 要素の中央を基準にして X 軸方向に時計回りの 3D 回転を指定する。 |
rotateY(回転角度) | 回転角度:数値+単位 | 3D: 要素の中央を基準にして Y 軸方向に時計回りの 3D 回転を指定する。 |
rotateZ(回転角度) | 回転角度:数値+単位 | 3D: 要素の中央を基準にして Z 軸方向に時計回りの 3D 回転を指定する。 |
scale (X 方向倍率, Y 方向倍率) | X 方向倍率:>=1で拡大、<1で縮小 Y 方向倍率:同上(規定値:1) | 2D: 要素を X 方向、 Y 方向の中央を基準に拡大・縮小する。 |
scale3d (X 方向倍率,Y 方向倍率, Z 方向倍率) |
X 方向倍率:>=1で拡大、<1で縮小 Y 方向倍率:同上(規定値:1) Z 方向倍率:同上(規定値:1) | 3D: X 方向、Y 方向、Z 方向へ拡大縮小する。 |
scaleX(倍率) | 倍率:>=1で拡大、<1で縮小 | 2D: 要素を X 方向の中央を基準に左右に拡大・縮小する。 |
scaleY(倍率) | 倍率:>=1で拡大、<1で縮小 | 2D: 要素を Y 方向の中央を基準に上下に拡大・縮小する。 |
scaleZ(倍率) | 倍率:>=1で拡大、<1で縮小 | 3D: 要素を Z 方向の中央を基準に上下に拡大・縮小する。 |
skewX(傾斜角度) | 傾斜角度:数値+単位 | 2D: 要素の中央を中心に X 軸方向への傾斜を指定する。 |
skewY(傾斜角度) | 傾斜角度:数値+単位 | 2D: 要素の中央を中心に Y 軸方向への傾斜を指定する。 |
translate (X 方向距離, Y 方向距離) | X 方向距離:数値+単位 Y 方向距離:同上(規定値:0px) | 2D: 要素を X 方向と Y 方向に 2D 移動する。 |
translate3d (X 方向距離,Y 方向距離, Z 方向距離) |
X 方向距離:数値+単位 Y 方向距離:数値+単位(規定値:0px) Z 方向距離:数値+単位(規定値:0px) | 3D: 要素を X 方向、Y 方向、Z 方向に 3D 移動する。 |
translateX(距離) | 数値+単位 | 2D: 要素を X 方向に 2D 移動する。 |
translateY(距離) | 数値+単位 | 2D: 要素を Y 方向に 2D 移動する。 |
translateZ(Z距離) | 数値+単位 | 2D: 要素を Z 方向に 3D 移動する。 |
表示例は、8 変形 も参照してください。
なお、下の例では黄色い部分が本来の図形の位置で、そこからどのように変形されたかを示しています。
<div> <div style="transform:translate(50px,20px);"></div> </div> <div> <div style="transform:scale(1.5,1.2);"></div> </div> <div> <div style="transform:rotate(60deg);"></div> </div> <div style="transform-style:preserve-3d;perspective:100px;"> <div style="transform:translateZ(20px);"></div> </div> <div style="transform-style:preserve-3d;perspective:100px;"> <div style="transform:rotateX(60deg);"></div> </div>
ぼかしや色変化などのグラフィック効果を要素に適用するために指定します。
8.4 フィルターも参照してください。
関数 | 引数 | 説明 |
---|---|---|
blur(半径) | ぼかしの半径(大きい値になるほどよりぼかしが入る) | 画像をぼかす。 |
brightness(割合) | 明るさの割合:0~1(暗くなる)、1~(明るくなる)(注) | 画像の明るさを変える。 |
contrast(割合) | 明るさの割合:0~1(コントラストが下がる)、1~(コントラストが上がる) | 画像のコントラストを変える。 |
drop-shadow(X位置 Y位置 [ ぼかし半径[ 影の色]]) | X位置:水平方向の距離 Y位置:垂直方向の距離 ぼかし半径:0以上の値。大きいほど薄くなる 影の色(規定値:ブラウザによる) | 影が広がる半径を変える。 |
grayscale(割合) | 変換の度合い:0~1(1で完全なグレースケール) | グレースケールに変換する。 |
hue-rotate(色相) | 色相:0°~360°の範囲の角度 | 色相を指定する。 |
invert(割合) | 変換の割合:0~1(1で完全な反転) | 階調を反転する。 |
opacity(割合) | 不透明度の割合:0~1(1で完全な不透明) | 不透明度を指定する。 |
saturate(彩度) | 彩度:0~1(暗くなる)、1~(明るくなる) | 彩度を指定する。 |
sepia(彩度) | 変換の割合:0~1(1で完全なセピア色) | セピア色を指定する。 |
(注)割合:数値もしくは % (0.3 と 30% は同じ意味)
<img src="bear.png" style="filter:blur(5px);"> <img src="bear.png" style="filter:brightness(0.4);"> <img src="bear.png" style="filter:contrast(200%);"> <img src="bear.png" style="filter:drop-shadow(16px 16px 20px blue);"> <img src="bear.png" style="filter:grayscale(50%);"> <img src="bear.png" style="filter:hue-rotate(90deg);"> <img src="bear.png" style="filter:invert(75%);"> <img src="bear.png" style="filter:opacity(25%);"> <img src="bear.png" style="filter:saturate(30%);"> <img src="bear.png" style="filter:sepia(80%);">
アニメーションの変化のタイミング・進行割合を指定するために指定します。
9.3 変化のタイミング も参照してください。
関数 | 引数 | 説明 |
---|---|---|
cubic-bezier(x1, y1, x2, y2) | [x1, y1], [x2, y2] 基準点 | [0.0, 0.0] から始まり、[x1, y1], [x2, y2] を基準点にして [1.0, 1.0] に到達する三次ベジェ曲線に従い変化する。 |
スタイルシート @keyframes anime { from {width: 0px;} 80% {width: 500px;} to {width: 500px;} } div { height:20px; background: aquamarine; animation: anime 5s infinite both; } ボディ <div style="animation-timing-function:linear;">linear</div> <div style="animation-timing-function:animation-timing-function:cubic-bezier(0.1, 2.3, 0.3, 0.3);">cubic-bezier(0.1, 2.3, 0.3, 0.3)</div>
画像などのファイルへのパスや グラデーションやマスクなどの ID を指定する場合に使用します。
ファイルを指定できる属性としては、背景画像、ボーダー画像、マスク画像、フォントなどがあります。
また、ID を指定できる属性としては、SVG の 線の色、面の色、マーカー、パターン などがあります。
指定するファイルへのパスは、ダブルクォーテーション( " )、 または、シングルクォーテーション( ' )の引用符で囲みますが、引用符を省略することもできます。
関数 | 引数 | 説明 |
---|---|---|
url(パス | #ID) | パス:ファイルへの URI ID:要素の ID | ファイルあるいは、ID の示す要素を参照する。 |
スタイルシート img { mask-image:url(circle.png); mask-repeat:no-repeat; } ボディ <div style="background-image:url(bear3.png);">background-image:url(bear3.png);</div> <div style="border:solid 20px;border-image:url(flower.png) 20 / 20px space;">border-image:url('flower.png') 20 / 20px space;</div> <img src="figures/bear.png" style="mask-position:center;"> <svg viewbox="00 0 200 200" width="200" height="200"> <defs> <linearGradient id="g"> <stop offset="0.2" stop-color="green"/> <stop offset="0.8" stop-color="yellow"/> </linearGradient> <marker id="m" refX="0" refY="35" markerWidth="30" markerHeight="40" markerUnits="userSpaceOnUse"> <image x="0" y="0" width="30" height="40" xlink:href="flag.png"/> </marker> <pattern id="p" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse" patternContentUnits="userSpaceOnUse" patternTransform="rotate(-45)"> <circle cx="10" cy="10" r="10" fill="orange"/> </pattern> </defs> <rect x="20" y="0" width="140" height="50" fill="url(#g)"/> <ellipse cx="90" cy="90" rx="70" ry="30" fill="url(#p)"/> <path d="M10,170Q60,130 70,160T170,120" stroke="brown" stroke-width="10" fill="none" marker-start="url(#m)" marker-mid="url(#m)" marker-end="url(#m)"/> </svg>
カウンターを使用する場合に使用します。
関数 | 引数 | 説明 |
---|---|---|
counter(カウンタ名) | カウンタ名:カウンタ変数の名称 | カウンタ変数の値を参照する。 |
counters(カウンタ名, 区切り文字) | カウンタ名:カウンタ変数の名称 区切り文字:カウンタ変数の値をつなぐ文字列 | 階層が深い複数のカウンタ変数の値を区切り文字で結合して参照する。 |
スタイルシート div.counter {counter-increment:number;} div.counter::before {content:"(" counter(number) ") ";} ol {counter-reset: s; list-style-type: none;} li {counter-increment: s;} li::before {content: counters(s, ".") " ";} ボディ <div class="counter">最初の行</div> <div class="counter">次の行</div> <ol> <li>item</li> <li>group <ol> <li>item</li> <li>group <ol> <li>item</li> </ol> </li> </ol> </li> </ol>
HTML で次のように記述したとします。
<h1>竹取物語</h1> <p>今は昔、竹取の翁といふものありけり。野山にまじりて竹を取りつつ、よろづのことに使ひけり。</p>
この例では h1 要素と p 要素の二つの要素が使われています。CSS では、これらの要素を長方形のボックスとして扱います。このボックスをグレイの矩形として、理解の助けになるように別途描いています。
この「ボックス」に枠線をつけたり、横幅や高さなどを決めたりして自由に配置することで、いろいろなデザインが可能になります。
ボックスには三つの重要な要素があります。ボーダー、パディング、マージンです。
パディング や マージン の幅は自由に大きさを指定でき、さらに上下左右に個別に指定することも可能です。ボーダー も同じく、幅・色・スタイル(線種)を上下左右、個別に指定できます。