HTML&CSS超入門2:CSS入門編

入門1は[こちら](https://qiita.com/Kobayashi2019/items/698fb6401e2c2b1d5e04)
#CSS

最初は次のように書きます。
###文字の色を変える
```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <h1>この文章の色を変えます。</h1>
  </body>
</html>
```
まずcssは使わずに結果を表示してみましょう。
次のようになります。
![HTML&CSS9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/1c81e399-6c60-fe42-f584-dc6e6e9473b6.png)
ここでcssのファイルを作りましょう。
CSSのファイルをhtmlのファイルとは別に用意します。
今回はファイル名を`stylesheet.css`とします。

```css:stylesheet.css
h1{
  /*色を赤に変える*/
  color:red;
}
```
このとき、htmlのファイルとcssのファイルは同じ階層に置くようにしましょう。

これでブラウザを更新すると、あれ？
![HTML&CSS9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/69a0c929-781d-b418-76c0-5577c312e24a.png)
変わらない…

実はcssファイルを作ったからといって勝手に読み込んでくれる訳ではなく、
htmlのファイルで「このcssファイルを読み込んでね！」と指定する必要があります。
次のように書きます。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
    <!--CSSの読み込み-->
    <link rel="stylesheet" href="stylesheet.css">
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <h1>この文章の色を変えます。</h1>
  </body>
</html>
```
`rel="stylesheet"`はCSSファイルを読み込むという意味です。
今回作成した`stylesheet.css`を読み込ませるものではないので注意しましょう。
`href="stylesheet.css"`が`stylesheet.css`を読み込むという文です。
すると…
![HTML&CSS10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/36a001fa-dfd5-6614-a0f4-340c293fac7d.png)
色が変わります。
もう一度コードを見てみましょう。

```css:stylesheet.css
h1{
  /*色を赤に変える*/
  color:red;
}
```
`h1`と書いてあるのは
「今からh1要素の設定をします。」ということを言っています。
`{}`に囲われたところがその内容です。

`;(セミコロン)`は「ここまでで1つの命令です。」という意味です。
これを書かないとバグの原因になります。
(プログラムもそうだけどこれがすごい忘れがち)

CSSではコメントは`/*`と`*/`で挟みます。
HTMLと違うのはややこしいけど覚えるしかない。

colorは要素の色を変えるもので**プロパティ**の一つです。
プロパティは後ろに`:(コロン)`をつけて設定の中身を指定します。
今回は`red(赤色)`と指定しています。
また、色を記号で指定することもでき、赤は`#ff0000`と書くことができます。


```css:stylesheet.css
h1{
  /*色を赤に変える*/
  color:#ff0000;
}
```
色は様々な色が混ざり合った色も指定できます。
[カラーコード](https://www.colordic.org/)を一度参照してみるといいでしょう。

###文字の大きさを変える
一度CSSなしで実行してみましょう。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
    <!--CSSの読み込み-->
    <link rel="stylesheet" href="stylesheet.css">
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <h1>文字の大きさを変えます。</h1>
    <h2>文字の大きさを変えます。</h2>
  </body>
</html>
```
このようになります。
![CSS4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/bc7f72af-43a5-08bd-03c0-153159ad2062.png)


文字の大きさを変えるには次のように書きます。

```css:stylesheet.css
h1{
  font-size: 30px;
}
h2{
  font-size: 40px;
}
```
`px`は**ピクセル**と読みます。

結果は次の通り。
![CSS3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/2d19969e-47c0-e754-d17e-61618f08a1a0.png)
`<h1>`タグや`<h2>`タグに関係なく文字の大きさが変わっていることがわかると思います。

###特定の要素だけCSSを適用する
ここまでの知識で実際に何か作ろうとなったとき、必ず大きな問題に直面します。
実際にコードを書いて見てみましょう。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
    <!--CSSの読み込み-->
    <link rel="stylesheet" href="stylesheet.css">
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <h1>色を変えたい</h1>
    <h1>色を変えたくない</h1>
  </body>
</html>
```

```css:stylesheet.css
h1{
  color: red;
}
```
![CSS5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/5dfc79d4-b41d-0767-3c28-30c65e0d64f4.png)

御覧の通り、h1タグに`color`を指定するとh1タグの文字が全て赤色に変わってしまいます。

これでは不便でしょうがない。
しかし、解決する術があります。
同じ`<h1>`タグを色を変えたいのか変えたくないのか見分けることができれば解決ですね。
見分けるために何をするのかといえば、名前を付けます。当然の流れ。

実際に書いていきましょう。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
    <!--CSSの読み込み-->
    <link rel="stylesheet" href="stylesheet.css">
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <h1 class="change-color">色を変えたい</h1>
    <h1>色を変えたくない</h1>
  </body>
</html>
```

```css:stylesheet.css
.change-color{
  color: red;
}
```

このように特定の要素にだけcssの設定を適用したい場合は`class`属性を付けます。
今回は`change-color`としていますがここは自由に決められます。
この`class`で名前を付けた後は、cssではその名前で呼んであげることで`change-color`と指定された要素だけ色が変わります。

先ほどの`<h1>`などタグの名前を使うときと違って`class`で指定するときは`class`の名前の前に`.`が必要なので注意しましょう。

これで思い通りに…!
![CSS6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/075525b3-0205-eb8a-1325-cc17eec0e89c.png)

###まとめ
ここまでCSSの大まかな使い方を説明してきました。
CSSでサイトの見た目をいろいろ変えられることがわかっていれば十分です。
ここまでくれば「文字を中央に寄せるにはどうしたらいいのかな？」と思った時にgoogleで検索するなど自分で調べながらサイトを作れると思います。