ウェブサイトで適切なフォントを選ぶことは重要です!
適切なフォントを選ぶことは、読者がウェブサイトをどのように感じるかに大きな影響を与えます。
適切なフォントはブランドの強いアイデンティティを作り出すことができます。
読みやすいフォントを使用することも重要です。フォントはテキストに価値を加えます。また、フォントの色とテキストサイズを正しく選ぶことも重要です。
CSSでは、以下の5つの一般的なフォントファミリーがあります:
すべてのフォント名は、これらの一般的なフォントファミリーのうちのどれかに属します。
Serif と Sans-serif の違い
注:コンピューターの画面では、Sans-serif フォントの方が Serif フォントよりも読みやすいとされています。
一般的なフォントファミリー | フォント名の例 |
---|---|
Serif |
|
Sans-serif |
|
Monospace |
|
Cursive |
|
Fantasy |
|
CSSでは、テキストのフォントを指定するためにfont-familyプロパティが使われます。
注:フォント名が複数語の場合は、”Times New Roman” のように引用符で囲む必要があります。
ヒント:font-familyプロパティは複数のフォント名を「フォールバック」システムとして保持するべきです。これにより、異なるブラウザやオペレーティングシステム間で最大限の互換性が確保されます。最初に望むフォントを指定し、最後に一般的なファミリー名を記述します(もし他のフォントが利用できない場合にはブラウザが代替フォントを選ぶため)。フォント名はコンマで区切ります。フォールバックフォントについての詳細は次の章で説明します。
.p1 {
font-family: "Times New Roman", Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
CSSにはテキストをフォーマットするための多くのプロパティがあります。
color
プロパティはテキストの色を設定します。色は以下のように指定されます:
可能な色の値の完全なリストについては、CSS Color Valuesを参照してください。
ページのデフォルトのテキスト色は、body
セレクタで定義されます。
>body {
color: blue;
}
>h1 {
color: green;
}
次の例では、background-color
プロパティとcolor
プロパティの両方を定義します:
>body {
background-color: lightgrey;
color: blue;
}
>h1 {
background-color: black;
color: white;
}
>div {
background-color: blue;
color: white;
}
重要:視覚障害を持つ人々にとって、高いコントラストは非常に重要です。そのため、テキストの色と背景色(または背景画像)の間のコントラストが良好であることを常に確認してください!
プロパティ | 説明 |
---|---|
color |
テキストの色を指定します |
アウトラインは、要素の境界線の外側に描かれる線です。
アウトラインは要素の周囲に描かれる線で、境界線の外側に描かれて要素を目立たせます。
CSSには以下のアウトラインプロパティがあります:
outline-style
outline-color
outline-width
outline-offset
outline
注意:アウトラインはボーダーとは異なります!ボーダーと違い、アウトラインは要素の境界線の外側に描かれ、他のコンテンツと重なることがあります。また、アウトラインは要素の寸法の一部ではありません。要素の全幅と高さにアウトラインの幅が影響することはありません。
outline-style
プロパティはアウトラインのスタイルを指定し、以下の値のいずれかを持つことができます:
dotted
– 点線のアウトラインを定義しますdashed
– 破線のアウトラインを定義しますsolid
– 実線のアウトラインを定義しますdouble
– 二重線のアウトラインを定義しますgroove
– 3Dの凹線のアウトラインを定義しますridge
– 3Dの凸線のアウトラインを定義しますinset
– 3Dの浮き出し線のアウトラインを定義しますoutset
– 3Dの沈み込み線のアウトラインを定義しますnone
– アウトラインを定義しませんhidden
– 隠れたアウトラインを定義します異なるアウトラインスタイルのデモンストレーション:
p.dotted {outline-style: dotted; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.dashed {outline-style: dashed; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.solid {outline-style: solid; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.double {outline-style: double; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.groove {outline-style: groove; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.ridge {outline-style: ridge; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.inset {outline-style: inset; border: 1px solid black; outline-color: green; outline-width: 10px;}
p.outset {outline-style: outset; border: 1px solid black; outline-color: green; outline-width: 10px;}
結果:
点線のアウトライン。
破線のアウトライン。
実線のアウトライン。
二重線のアウトライン。
凹線のアウトライン。エフェクトはoutline-color
の値に依存します。
凸線のアウトライン。エフェクトはoutline-color
の値に依存します。
浮き出し線のアウトライン。エフェクトはoutline-color
の値に依存します。
沈み込み線のアウトライン。エフェクトはoutline-color
の値に依存します。
注意:次の章で詳しく学ぶ他のアウトラインプロパティは、outline-style
プロパティが設定されていない限り、いかなる影響も与えません!
すべてのHTML要素はボックスとして考えることができます。
CSSでは、デザインやレイアウトについて語る際に「ボックスモデル」という用語が使われます。
CSSボックスモデルは基本的に、すべてのHTML要素を囲むボックスで構成されています。以下の要素からなります:
ボックスモデルにより、要素の周囲に境界線を追加したり、要素間のスペースを定義したりすることができます。
ボックスモデルのデモンストレーション:
div {
width: 300px;
border: 15px solid green;
padding: 50px;
margin: 20px;
}
すべてのブラウザで要素の幅と高さを正しく設定するためには、ボックスモデルがどのように機能するかを理解する必要があります。
重要:CSSで要素の幅と高さプロパティを設定するときは、コンテンツ領域の幅と高さのみが設定されます。要素の実際の幅と高さを計算するには、パディングとボーダーも含める必要があります。
この<div>要素は、全体の幅が350px、高さが80pxになります:
div {
width: 320px;
height: 50px;
padding: 10px;
border: 5px solid gray;
margin: 0;
}
計算方法:
要素の全体の幅は以下のように計算されます:
要素の全体の幅 = 幅 + 左パディング + 右パディング + 左ボーダー + 右ボーダー
要素の全体の高さは以下のように計算されます:
要素の全体の高さ = 高さ + 上パディング + 下パディング + 上ボーダー + 下ボーダー
注意:マージンプロパティは、ボックスがページ上で占める総スペースに影響しますが、実際のボックスのサイズには含まれません。ボックスの全体の幅と高さはボーダーで止まります。
この要素の高さは50ピクセルで、幅は100%です。
高さと幅のプロパティは、要素の高さと幅を設定するために使用されます。
高さと幅のプロパティは、パディング、ボーダー、またはマージンを含みません。これらは要素のパディング、ボーダー、およびマージンの内側の領域の高さ/幅を設定します。
高さと幅のプロパティには、以下の値が指定できます:
この要素は高さ200ピクセルで幅が50%です。
div {
height: 200px;
width: 50%;
background-color: powderblue;
}
この要素は高さが100ピクセルで幅が500ピクセルです。
div {
height: 100px;
width: 500px;
background-color: powderblue;
}
注意: 高さと幅のプロパティにはパディング、ボーダー、またはマージンは含まれません!これらは要素のパディング、ボーダー、およびマージンの内側の領域の高さ/幅を設定します。
最大幅のプロパティは、要素の最大幅を設定するために使用されます。
最大幅は、px、cmなどの長さの値、またはコンテイニングブロックの%で指定することができます。または、none(これがデフォルトです。最大幅がありません)に設定することもできます。
上記の<div>要素の問題は、ブラウザウィンドウが要素の幅(500px)よりも小さい場合に発生します。その場合、ブラウザはページに水平スクロールバーを追加します。
この状況では、代わりにmax-widthを使用することで、小さいウィンドウでのブラウザの処理を改善できます。
ヒント: ブラウザウィンドウを500pxより小さくドラッグして、2つの<div>の違いを確認してください!
この要素は高さが100ピクセルで最大幅が500ピクセルです。
div {
max-width: 500px;
height: 100px;
background-color: powderblue;
}
プロパティ | 説明 |
---|---|
height | 要素の高さを設定します |
max-height | 要素の最大高さを設定します |
max-width | 要素の最大幅を設定します |
min-height | 要素の最小高さを設定します |
min-width | 要素の最小幅を設定します |
width | 要素の幅を設定します |
この要素には70pxのパディングがあります。
CSSのパディングプロパティは、要素の内容の周囲にスペースを作成するために使用されます。これにより、定義されたボーダーの内側にスペースが作られます。
CSSを使用すると、パディングを完全に制御できます。要素の各側面(上、右、下、左)のパディングを設定するプロパティがあります。
CSSには、要素の各側面のパディングを指定するためのプロパティがあります:
すべてのパディングプロパティは、以下の値を持つことができます:
ヒント: 負の値は許可されていません。
<div>要素の4つの側面すべてに異なるパディングを設定します:
div {
padding-top: 50px;
padding-right: 30px;
padding-bottom: 50px;
padding-left: 80px;
}
コードを短縮するために、すべてのパディングプロパティを1つのプロパティで指定することができます。
paddingプロパティは、以下の個々のパディングプロパティのショートハンドプロパティです:
以下はその動作方法です:
paddingプロパティに4つの値がある場合:
padding: 25px 50px 75px 100px;
4つの値を持つパディングショートハンドプロパティを使用します:
div {
padding: 25px 50px 75px 100px;
}
paddingプロパティに3つの値がある場合:
padding: 25px 50px 75px;
3つの値を持つパディングショートハンドプロパティを使用します:
div {
padding: 25px 50px 75px;
}
paddingプロパティに2つの値がある場合:
padding: 25px 50px;
2つの値を持つパディングショートハンドプロパティを使用します:
div {
padding: 25px 50px;
}
paddingプロパティに1つの値がある場合:
padding: 25px;
1つの値を持つパディングショートハンドプロパティを使用します:
div {
padding: 25px;
}
CSSのwidthプロパティは、要素の内容領域の幅を指定します。内容領域は、要素のパディング、ボーダー、マージンの内側です(ボックスモデル)。
したがって、要素に指定された幅がある場合、その要素に追加されるパディングは要素の合計幅に追加されます。これはしばしば望ましくない結果です。
<div>要素に幅300pxを指定します。ただし、<div>要素の実際の幅は350pxになります(300px + 左側のパディング25px + 右側のパディング25px):
div {
width: 300px;
padding: 25px;
}
パディングを増やしても要素の幅を300pxに保つには、box-sizingプロパティを使用します。これにより、要素はその実際の幅を維持し、パディングを増やすと利用可能なコンテンツスペースが減少します。
box-sizingプロパティを使用して、パディングの量に関係なく幅を300pxに保ちます:
div {
width: 300px;
padding: 25px;
box-sizing: border-box;
}
左のパディングを設定する
この例では、<p>要素の左パディングを設定する方法を示します。
右のパディングを設定する
この例では、<p>要素の右パディングを設定する方法を示します。
上のパディングを設定する
この例では、<p>要素の上パディングを設定する方法を示します。
下のパディングを設定する
この例では、<p>要素の下パディングを設定する方法を示します。
プロパティ | 説明 |
---|---|
padding | すべてのパディングプロパティを1つの宣言で設定するためのショートハンドプロパティ |
padding-bottom | 要素の下パディングを設定します |
padding-left | 要素の左パディングを設定します |
padding-right | 要素の右パディングを設定します |
padding-top | 要素の上パディングを設定します |
この要素には70pxのマージンがあります。
CSSのマージンプロパティは、要素の周囲にスペースを作成するために使用されます。これにより、定義されたボーダーの外側にスペースが作られます。
CSSを使用すると、マージンを完全に制御できます。要素の各側面(上、右、下、左)のマージンを設定するプロパティがあります。
CSSには、要素の各側面のマージンを指定するためのプロパティがあります:
すべてのマージンプロパティは、以下の値を持つことができます:
ヒント: 負の値も使用できます。
<p>要素の4つの側面すべてに異なるマージンを設定します:
p {
margin-top: 100px;
margin-bottom: 100px;
margin-right: 150px;
margin-left: 80px;
}
コードを短縮するために、すべてのマージンプロパティを1つのプロパティで指定することができます。
marginプロパティは、以下の個々のマージンプロパティのショートハンドプロパティです:
以下はその動作方法です:
marginプロパティに4つの値がある場合:
margin: 25px 50px 75px 100px;
4つの値を持つマージンショートハンドプロパティを使用します:
p {
margin: 25px 50px 75px 100px;
}
marginプロパティに3つの値がある場合:
margin: 25px 50px 75px;
3つの値を持つマージンショートハンドプロパティを使用します:
p {
margin: 25px 50px 75px;
}
marginプロパティに2つの値がある場合:
margin: 25px 50px;
2つの値を持つマージンショートハンドプロパティを使用します:
p {
margin: 25px 50px;
}
marginプロパティに1つの値がある場合:
margin: 25px;
1つの値を持つマージンショートハンドプロパティを使用します:
p {
margin: 25px;
}
要素をコンテナ内で水平に中央に配置するために、marginプロパティをautoに設定できます。
要素は指定された幅を取り、残りのスペースは左右のマージン間で等しく分割されます。
margin: autoを使用します:
div {
width: 300px;
margin: auto;
border: 1px solid red;
}
この例では、<p class=”ex1″>要素の左マージンが親要素(<div>)から継承されます:
inherit値の使用:
div {
border: 1px solid red;
margin-left: 100px;
}
p.ex1 {
margin-left: inherit;
}
プロパティ | 説明 |
---|---|
margin | すべてのマージンプロパティを1つの宣言で設定するためのショートハンドプロパティ |
margin-bottom | 要素の下マージンを設定します |
margin-left | 要素の左マージンを設定します |
margin-right | 要素の右マージンを設定します |
margin-top | 要素の上マージンを設定します |
すべての辺にボーダーがあります。
下辺に赤いボーダーがあります。
角が丸くなったボーダーがあります。
左辺に青いボーダーがあります。
border-styleプロパティは、表示するボーダーの種類を指定します。
以下の値が使用できます:
border-styleプロパティは、上辺、右辺、下辺、左辺に対して1つから4つの値を持つことができます。
さまざまなボーダースタイルのデモンストレーション:
p.dotted {border-style: dotted;}
p.dashed {border-style: dashed;}
p.solid {border-style: solid;}
p.double {border-style: double;}
p.groove {border-style: groove;}
p.ridge {border-style: ridge;}
p.inset {border-style: inset;}
p.outset {border-style: outset;}
p.none {border-style: none;}
p.hidden {border-style: hidden;}
p.mix {border-style: dotted dashed solid double;}
点線のボーダー。
破線のボーダー。
実線のボーダー。
二重線のボーダー。
溝付きボーダー。効果はborder-colorの値によって異なります。
隆起ボーダー。効果はborder-colorの値によって異なります。
インセットボーダー。効果はborder-colorの値によって異なります。
アウトセットボーダー。効果はborder-colorの値によって異なります。
ボーダーなし。
混合ボーダー。
CSSの背景プロパティは、要素に背景効果を追加するために使用されます。
これらの章では、以下のCSS背景プロパティについて学びます:
background-colorプロパティは、要素の背景色を指定します。
ページの背景色は次のように設定されます:
body {
background-color: lightblue;
}
CSSでは、色は以下の方法で指定されることが最も多いです:
任意のHTML要素に対して背景色を設定できます:
ここでは、<h1>、<p>、および<div>要素が異なる背景色を持ちます:
h1 {
background-color: green;
}
div {
background-color: lightblue;
}
p {
background-color: yellow;
}
opacityプロパティは、要素の不透明度/透明度を指定します。このプロパティは、0.0から1.0までの値を取ることができます。値が低いほど、透明度が高くなります:
div {
background-color: green;
opacity: 0.3;
}
注意:opacityプロパティを使用して要素の背景に透明度を追加すると、そのすべての子要素も同じ透明度を継承します。これにより、完全に透明な要素内のテキストが読みづらくなることがあります。
上記の例のように子要素に不透明度を適用したくない場合は、RGBA色値を使用します。次の例では、背景色に対して不透明度を設定し、テキストには適用されません:
CSS Colorsの章で学んだように、RGBを色値として使用できます。RGBに加えて、アルファチャンネル(RGBA)を使用して不透明度を指定することもできます。
RGBA色値は次のように指定されます:rgba(red, green, blue, alpha)。alphaパラメータは0.0(完全に透明)から1.0(完全に不透明)の間の数値です。
div {
background: rgba(0, 128, 0, 0.3) /* 30%の不透明度の緑色の背景 */
}
プロパティ | 説明 |
---|---|
background-color | 要素の背景色を設定します |
カラーは、事前定義されたカラー名、またはRGB、HEX、HSL、RGBA、HSLAの値を使用して指定します。
CSSでは、事前定義されたカラー名を使用して色を指定できます:
CSS/HTMLは140の標準カラー名をサポートしています。
HTML要素の背景色を設定できます:
<h1 style="background-color:DodgerBlue;">Hello World</h1>
<p style="background-color:Tomato;">Lorem ipsum...</p>
テキストの色を設定できます:
<h1 style="color:Tomato;">Hello World</h1>
<p style="color:DodgerBlue;">Lorem ipsum...</p>
<p style="color:MediumSeaGreen;">Ut wisi enim...</p>
ボーダーの色を設定できます:
<h1 style="border:2px solid Tomato;">Hello World</h1>
<h1 style="border:2px solid DodgerBlue;">Hello World</h1>
<h1 style="border:2px solid Violet;">Hello World</h1>
CSSでは、カラーをRGB値、HEX値、HSL値、RGBA値、およびHSLA値を使用して指定することもできます:
カラー名 “Tomato” と同じ:
カラー名 “Tomato” と同じですが、50% 透明:
<h1 style="background-color:rgb(255, 99, 71);">...</h1>
<h1 style="background-color:#ff6347;">...</h1>
<h1 style="background-color:hsl(9, 100%, 64%);">...</h1>
<h1 style="background-color:rgba(255, 99, 71, 0.5);">...</h1>
<h1 style="background-color:hsla(9, 100%, 64%, 0.5);">...</h1>