【決定版】CSSリファレンス:プロパティの定義、値、例を網羅
CSS(Cascading Style Sheets)は、ウェブページの見た目を制御するために使用されるスタイルシート言語です。HTMLで構造化されたコンテンツを、どのようにブラウザに表示させるかを指示する役割を担います。色、フォント、レイアウトなど、ウェブサイトのデザインを細かく制御することで、ユーザーエクスペリエンスを向上させ、ブランドイメージを確立する上で不可欠な技術です。
本記事では、CSSの主要なプロパティを網羅的に解説し、それぞれの定義、有効な値、そして具体的な使用例を紹介します。このリファレンスを活用することで、CSSの理解を深め、より洗練されたウェブデザインを実現できるようになるでしょう。
目次
- CSSの基本
- CSSの構文
- セレクタの種類
- カスケードと継承
- CSSの適用方法
- テキスト関連プロパティ
font-familyfont-sizefont-weightfont-styleline-heighttext-aligntext-decorationtext-transformletter-spacingword-spacingwhite-spacecolor
- ボックスモデル関連プロパティ
widthheightpaddingmarginborderbox-sizing
- 背景関連プロパティ
background-colorbackground-imagebackground-repeatbackground-positionbackground-sizebackground-attachmentbackground(ショートハンド)
- レイアウト関連プロパティ
displaypositiontop,right,bottom,leftfloatclearz-indexoverflowvisibility- Flexbox
display: flexflex-directionjustify-contentalign-itemsflex-wrapflex-grow,flex-shrink,flex-basis
- Grid Layout
display: gridgrid-template-columnsgrid-template-rowsgrid-gapgrid-column,grid-row
- 変形(Transform)関連プロパティ
transformtransform-originscalerotatetranslateskew
- アニメーション関連プロパティ
transitionanimation@keyframes
- その他の重要なプロパティ
cursoropacitylist-styletable-layoutclip(非推奨)clip-pathfilterpointer-events
1. CSSの基本
CSSを効果的に使用するには、その基本概念を理解することが不可欠です。
-
CSSの構文: CSSのルールは、セレクタと宣言ブロックで構成されます。セレクタはスタイルを適用するHTML要素を指定し、宣言ブロックはスタイルを定義するプロパティと値のペアを中括弧
{}で囲んだものです。css
セレクタ {
プロパティ: 値;
プロパティ: 値;
}例:
css
h1 {
color: blue;
font-size: 32px;
} -
セレクタの種類: CSSにはさまざまな種類のセレクタがあり、特定の要素や要素のグループをターゲットにできます。
- 要素セレクタ: HTML要素の名前(例:
p,h1,div) - クラスセレクタ:
.で始まる、HTML要素に適用されたclass属性の値(例:.highlight,.important) - IDセレクタ:
#で始まる、HTML要素に適用されたid属性の値(例:#header,#footer) - 属性セレクタ: HTML要素の属性に基づいて選択(例:
[type="text"],[href^="https://"]) - 疑似クラスセレクタ: 要素の状態に基づいて選択(例:
:hover,:active,:focus) - 疑似要素セレクタ: 要素の一部のスタイルを設定(例:
::before,::after,::first-letter) - 結合子: 複数のセレクタを組み合わせて選択(例:
p > strong,div + p,ul li)
- 要素セレクタ: HTML要素の名前(例:
-
カスケードと継承: CSSは「カスケード」の仕組みによって、複数のスタイルルールが競合する場合の優先順位を決定します。一般的に、後から定義されたスタイルルールが優先されますが、
!important宣言を使用すると、そのルールが最優先されます。「継承」とは、親要素に適用されたスタイルの一部が、子要素に自動的に引き継がれることです。例えば、
colorやfont-familyなどのプロパティは通常、子要素に継承されます。 -
CSSの適用方法: CSSは、主に以下の3つの方法でHTMLドキュメントに適用できます。
- インラインスタイル: HTML要素の
style属性内に直接記述します。(例:<p style="color: red;">This is a paragraph.</p>) これは、特定の要素にのみスタイルを適用する場合に便利ですが、保守性が低くなります。 - 内部スタイルシート: HTMLドキュメントの
<head>セクション内に<style>タグを使って記述します。ページ全体にスタイルを適用する場合に適していますが、複数のページでスタイルを共有することはできません。 - 外部スタイルシート:
.cssという拡張子を持つ別のファイルにCSSを記述し、HTMLドキュメントの<head>セクションで<link>タグを使ってファイルをリンクします。(例:<link rel="stylesheet" href="style.css">) これは、最も推奨される方法であり、コードの再利用性、保守性、構造化を向上させます。
- インラインスタイル: HTML要素の
2. テキスト関連プロパティ
これらのプロパティは、テキストの表示方法を制御します。
-
font-family: フォントの種類を指定します。複数のフォントをカンマ区切りで指定し、ブラウザはリストの最初のフォントが見つからない場合、次のフォントを試します。- 値: フォント名、
serif,sans-serif,monospace,cursive,fantasy(総称フォント) - 例:
font-family: "Helvetica Neue", Arial, sans-serif;
- 値: フォント名、
-
font-size: フォントのサイズを指定します。- 値:
px,em,rem,%,small,medium,large,x-large,xx-large,smaller,larger - 例:
font-size: 16px;またはfont-size: 1.2em;
- 値:
-
font-weight: フォントの太さを指定します。- 値:
normal,bold,bolder,lighter,100–900(100刻み) - 例:
font-weight: bold;またはfont-weight: 600;
- 値:
-
font-style: フォントのスタイルを指定します。- 値:
normal,italic,oblique - 例:
font-style: italic;
- 値:
-
line-height: 行の高さを指定します。- 値:
px,em,rem,%, 数値 (数値はフォントサイズに対する乗数) - 例:
line-height: 1.5;またはline-height: 24px;
- 値:
-
text-align: テキストの水平方向の配置を指定します。- 値:
left,right,center,justify - 例:
text-align: center;
- 値:
-
text-decoration: テキストの装飾を指定します。- 値:
none,underline,overline,line-through - 例:
text-decoration: underline;
- 値:
-
text-transform: テキストの文字変換を指定します。- 値:
none,uppercase,lowercase,capitalize - 例:
text-transform: uppercase;
- 値:
-
letter-spacing: 文字間隔を指定します。- 値:
px,em,rem - 例:
letter-spacing: 2px;
- 値:
-
word-spacing: 単語間隔を指定します。- 値:
px,em,rem - 例:
word-spacing: 5px;
- 値:
-
white-space: 空白文字の扱い方を指定します。- 値:
normal,nowrap,pre,pre-wrap,pre-line - 例:
white-space: nowrap;(改行を禁止)
- 値:
-
color: テキストの色を指定します。- 値: カラー名 (例:
red), 16進数コード (例:#FF0000), RGB値 (例:rgb(255, 0, 0)), RGBA値 (例:rgba(255, 0, 0, 0.5)), HSL値 (例:hsl(0, 100%, 50%)), HSLA値 (例:hsla(0, 100%, 50%, 0.5)) - 例:
color: blue;
- 値: カラー名 (例:
3. ボックスモデル関連プロパティ
ボックスモデルは、HTML要素をコンテンツ、パディング、ボーダー、マージンで構成される長方形のボックスとして扱います。
-
width: 要素のコンテンツ領域の幅を指定します。- 値:
px,em,rem,%,auto - 例:
width: 300px;またはwidth: 50%;
- 値:
-
height: 要素のコンテンツ領域の高さを指定します。- 値:
px,em,rem,%,auto - 例:
height: 200px;またはheight: 100vh;(viewport height)
- 値:
-
padding: 要素のコンテンツ領域とボーダーの間のスペースを指定します。- 値:
px,em,rem,%(上、右、下、左の順、省略可) - 例:
padding: 10px;(全方向),padding: 10px 20px;(上下 10px, 左右 20px),padding: 10px 20px 30px 40px;(上 10px, 右 20px, 下 30px, 左 40px)
- 値:
-
margin: 要素のボーダーと隣接する要素の間のスペースを指定します。- 値:
px,em,rem,%,auto(上、右、下、左の順、省略可) - 例:
margin: 20px;(全方向),margin: 0 auto;(左右中央揃え)
- 値:
-
border: 要素のボーダーのスタイル、幅、色を指定します。- 値:
border-width border-style border-color(ショートハンド) - 例:
border: 1px solid black;(1px の実線、黒色) - 個別のプロパティ:
border-width,border-style,border-color,border-top,border-right,border-bottom,border-left,border-radius
- 値:
-
box-sizing: 要素の幅と高さの計算方法を指定します。- 値:
content-box(デフォルト、幅と高さはコンテンツ領域のみ),border-box(幅と高さはコンテンツ、パディング、ボーダーを含む) - 例:
box-sizing: border-box;(これが推奨される方法)
- 値:
4. 背景関連プロパティ
これらのプロパティは、要素の背景の表示方法を制御します。
-
background-color: 背景色を指定します。- 値: カラー名, 16進数コード, RGB値, RGBA値, HSL値, HSLA値
- 例:
background-color: #f0f0f0;
-
background-image: 背景画像を指定します。- 値:
url(画像ファイルパス),none - 例:
background-image: url("image.jpg");
- 値:
-
background-repeat: 背景画像の繰り返し方法を指定します。- 値:
repeat(水平方向と垂直方向に繰り返す),repeat-x(水平方向に繰り返す),repeat-y(垂直方向に繰り返す),no-repeat(繰り返さない) - 例:
background-repeat: no-repeat;
- 値:
-
background-position: 背景画像の配置位置を指定します。- 値:
px,em,rem,%,top,bottom,left,right,center(水平方向 垂直方向の順、省略可) - 例:
background-position: center center;またはbackground-position: 20px 50%;
- 値:
-
background-size: 背景画像のサイズを指定します。- 値:
px,em,rem,%,auto,cover(要素全体を覆うように拡大縮小),contain(要素内に完全に収まるように拡大縮小) - 例:
background-size: cover;
- 値:
-
background-attachment: 背景画像のスクロール動作を指定します。- 値:
scroll(要素と一緒にスクロール),fixed(固定されたまま) - 例:
background-attachment: fixed;
- 値:
-
background(ショートハンド): 上記のすべての背景プロパティをまとめて指定できます。- 値:
background-color background-image background-repeat background-position background-size background-attachment(順不同) - 例:
background: #f0f0f0 url("image.jpg") no-repeat center center cover fixed;
- 値:
5. レイアウト関連プロパティ
これらのプロパティは、要素の配置方法を制御します。
-
display: 要素の表示形式を指定します。- 値:
block(ブロックレベル要素),inline(インライン要素),inline-block(インラインブロック要素),none(非表示),flex(フレキシブルボックス),grid(グリッドレイアウト) - 例:
display: block;(要素をブロックレベルにする)
- 値:
-
position: 要素の配置方法を指定します。- 値:
static(デフォルト、通常のフロー),relative(相対配置),absolute(絶対配置),fixed(固定配置),sticky(スクロール位置に基づいて固定)
- 値:
-
top,right,bottom,left:positionプロパティがrelative,absolute,fixed,stickyの場合に、要素の位置を調整するために使用します。- 値:
px,em,rem,%,auto
- 値:
-
float: 要素を左または右にフロートさせ、他の要素がその周りを回り込むようにします。- 値:
left,right,none - 例:
float: left;(要素を左にフロートさせる)
- 値:
-
clear: フロートされた要素の影響を受けないようにします。- 値:
left,right,both,none - 例:
clear: both;(両側のフロートをクリアする)
- 値:
-
z-index: 要素の重なり順を指定します。数値が大きいほど前面に表示されます。positionプロパティがstatic以外の要素にのみ有効です。- 値: 整数
- 例:
z-index: 10;
-
overflow: 要素のコンテンツがボックスからはみ出す場合の表示方法を指定します。- 値:
visible(デフォルト、はみ出す),hidden(はみ出した部分を隠す),scroll(常にスクロールバーを表示),auto(必要な場合にスクロールバーを表示)
- 値:
-
visibility: 要素の表示/非表示を切り替えます。display: none;とは異なり、要素の領域は確保されます。- 値:
visible,hidden
- 値:
Flexbox
Flexboxは、複雑なレイアウトを簡単に作成できる強力なレイアウトモデルです。
-
display: flex: 要素をフレキシブルコンテナにします。 -
flex-direction: フレキシブルアイテムの配置方向を指定します。- 値:
row(横方向),column(縦方向),row-reverse,column-reverse
- 値:
-
justify-content: フレキシブルコンテナ内のアイテムの水平方向の配置を指定します。- 値:
flex-start,flex-end,center,space-between,space-around,space-evenly
- 値:
-
align-items: フレキシブルコンテナ内のアイテムの垂直方向の配置を指定します。- 値:
flex-start,flex-end,center,baseline,stretch
- 値:
-
flex-wrap: フレキシブルアイテムがコンテナからはみ出す場合に折り返すかどうかを指定します。- 値:
nowrap,wrap,wrap-reverse
- 値:
-
flex-grow,flex-shrink,flex-basis: フレキシブルアイテムのサイズ調整方法を制御します。flexショートハンドプロパティを使用することもできます。- 例:
flex: 1 1 auto;(grow: 1, shrink: 1, basis: auto)
- 例:
Grid Layout
Grid Layoutは、複雑な二次元レイアウトを簡単に作成できる強力なレイアウトモデルです。
-
display: grid: 要素をグリッドコンテナにします。 -
grid-template-columns: グリッドの列のサイズと数を指定します。- 値:
px,em,rem,%,fr(fractional unit, 余ったスペースの割合),auto - 例:
grid-template-columns: 1fr 2fr 1fr;(3つの列、中央の列が2倍の幅)
- 値:
-
grid-template-rows: グリッドの行のサイズと数を指定します。- 値:
px,em,rem,%,fr,auto - 例:
grid-template-rows: 100px auto 100px;(3つの行、中央の行はコンテンツに合わせて自動調整)
- 値:
-
grid-gap: グリッドアイテム間のギャップを指定します。- 値:
px,em,rem - 例:
grid-gap: 10px;
- 値:
-
grid-column,grid-row: グリッドアイテムの配置場所を指定します。grid-column-start,grid-column-end,grid-row-start,grid-row-endを使用することもできます。- 例:
grid-column: 1 / 3;(グリッド列の1から3までを占める)
- 例:
6. 変形(Transform)関連プロパティ
これらのプロパティは、要素の形状や位置を変形させることができます。
-
transform: 要素に変形を適用します。複数の変形関数を組み合わせることができます。 -
transform-origin: 変形の中心点を指定します。- 値:
px,em,rem,%,top,bottom,left,right,center(水平方向 垂直方向の順、省略可)
- 値:
-
scale: 要素を拡大または縮小します。- 値: 数値 (1は元のサイズ)
- 例:
transform: scale(1.2);(1.2倍に拡大)
-
rotate: 要素を回転させます。- 値:
deg(度),rad(ラジアン),turn(回転数) - 例:
transform: rotate(45deg);(45度回転)
- 値:
-
translate: 要素を移動させます。- 値:
px,em,rem,%(水平方向 垂直方向の順、省略可) - 例:
transform: translate(20px, 30px);(水平方向に20px, 垂直方向に30px移動)
- 値:
-
skew: 要素を傾斜させます。- 値:
deg(度) (水平方向 垂直方向の順、省略可) - 例:
transform: skew(30deg);(水平方向に30度傾斜)
- 値:
7. アニメーション関連プロパティ
これらのプロパティは、要素のアニメーションを制御します。
-
transition: プロパティの値が変化する際にアニメーション効果を適用します。- 値:
property duration timing-function delay(ショートハンド) - 例:
transition: all 0.3s ease-in-out;(すべてのプロパティの変化を0.3秒でイーズインアウトでアニメーション) - 個別のプロパティ:
transition-property,transition-duration,transition-timing-function,transition-delay
- 値:
-
animation: キーフレームアニメーションを適用します。- 値:
name duration timing-function delay iteration-count direction fill-mode play-state(ショートハンド) - 個別のプロパティ:
animation-name,animation-duration,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,animation-fill-mode,animation-play-state
- 値:
-
@keyframes: キーフレームアニメーションを定義します。css
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
8. その他の重要なプロパティ
-
cursor: マウスカーソルの形状を指定します。- 値:
auto,default,pointer,wait,text,move,zoom-in,zoom-out,grab,grabbingなど - 例:
cursor: pointer;(リンクにホバーしたときに指の形にする)
- 値:
-
opacity: 要素の透明度を指定します。- 値: 数値 (0は完全に透明、1は完全に不透明)
- 例:
opacity: 0.5;(半透明にする)
-
list-style: リストのスタイルを指定します。- 値:
list-style-type list-style-position list-style-image(ショートハンド) - 例:
list-style: disc inside url("bullet.png"); list-style-type: リストマーカーの種類 (例:disc,circle,square,decimal,lower-alpha,upper-alpha,none)list-style-position: リストマーカーの位置 (例:inside,outside)list-style-image: リストマーカーとして使用する画像
- 値:
-
table-layout: テーブルのレイアウトアルゴリズムを指定します。- 値:
auto,fixed - 例:
table-layout: fixed;(列の幅を固定する)
- 値:
-
clip(非推奨): 要素の一部分だけを表示します。代わりにclip-pathの使用が推奨されます。 -
clip-path: 要素の一部分だけを表示します。clipよりも柔軟な形状を指定できます。- 値:
polygon(),circle(),ellipse(),inset()など - 例:
clip-path: circle(50%);(要素を円形に切り抜く)
- 値:
-
filter: 要素に視覚効果を適用します。- 値:
blur(),brightness(),contrast(),grayscale(),hue-rotate(),invert(),opacity(),saturate(),sepia(),drop-shadow()など - 例:
filter: blur(5px);(要素をぼかす)
- 値:
-
pointer-events: 要素がマウスイベントのターゲットになるかどうかを指定します。- 値:
auto,none - 例:
pointer-events: none;(要素をマウスイベントから除外する)
- 値:
本記事では、CSSの主要なプロパティを網羅的に解説しました。それぞれのプロパティの定義、有効な値、そして具体的な使用例を参考に、CSSの理解を深め、より洗練されたウェブデザインを実現してください。CSSは奥深く、常に新しい技術やプロパティが登場しています。常に学習を続け、最新の情報に触れることで、より高度なウェブデザインスキルを習得できるでしょう。