いづいづブログ

アジャイルコーチになりたい札幌在住SEです。アジャイル札幌スタッフ&ScrumFestSapporo実行委員。Like:パクチー/激辛/牡蠣/猫/初期仏教

CSSの基本を理解する #1

まずはCSSの基本文法について学習。

CSSの基本文法

  • セレクタCSSによるデザイン指定をどこの部分に対して適用するか
  • プロパティ:セレクタで指定された部分の何を変えるのか
  • 値:どのように見た目を変えるのか

f:id:izumii-19:20181026140514p:plain:w300

セレクタの書き方

セレクタの書き方はいくつかある。

1.タグ名を書く

p {
  color: orange
}

<p>これは段落です。</p>

2.id名を書く

id名の場合は#クラス名のように"#"+クラス名。

#headline {
  color: orange
}

<div id="headline">
<p>これは段落です。</p>
</div>

3.class名を書く

クラス名の場合は.クラス名のようにピリオド+クラス名。*1

.main {
  color: orange
}

<div class="main">
<h1>これは段落です。</h1>
</div>

4.適用先は複数指定できる

カンマで区切って複数を指定することもできる。

#headline,.main {
  color: orange
}

<div class="main">
<h1>これは段落です。</h1>
</div>

<div id="headline">
<p>これは段落です。</p>
</div>

idとclassの使い分け

idとclassの使い分けにはルールがある。どっちでもいいというわけではない。

  • class:種別名を割り当てる。同じclass名を1ページ中に何度でも使える。
  • id:固有の名前を割り当てる。同じid名は、1ページ中に1度しか使えない。

idは対象に対して固有の名前をつけて一意に表すために使用する。例えるとclassは「学校のクラス」、idは「学籍番号」のようなイメージ。

後述するように、全てclassを使用しても良いのだが、idとclassを使い分けることによって、ページの中でどこかの1箇所のみに限定したスタイルなのか、汎用的なスタイルなのかをソースから読み解くことができる。 (ちなみにidはclassよりも優先される)。

id

例えばdiv要素を用いて、ページを「上部領域(ヘッダ)」「サイドバー」「本文領域」「下部領域(フッタ)」の4ブロックに分割する場合、1ページ内にそれぞれ1度しか登場しないものなので、idを使用する。

上部領域: <div id="header">~</div>
サイドバー: <div id="sidebar">~</div>
本文領域: <div id="main">~</div>
下部領域: <div id="footer">~</div>```

class

ページによってはサイドバーが2つになる場合もある。そのような場合はclassを使用する。 「同じclass名を1ページ中に何度でも使える。」ということを考えた場合、1度しか使用しないものにもclassを使用してもかまわないという考え方もできるので、全てclassで実装するという方法もある。

サイドバー1: <div class="sidebar">~</div>
サイドバー2: <div class="sidebar">~</div>

ただし、サイドバー1とサイドバー2を明確に分けたい場合は、以下のようにidを使用する方法もある。

サイドバー1: <div id="sidebar1">~</div>
サイドバー2: <div id="sidebar2">~</div>

*1:実際cssを書いてみるとclassで指定する書き方が圧倒的に多いという感触。