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

####対象読者
これからHTML、CSSを学ぶ人
#初めに
[ProgateのHTML&CSSレッスン](https://prog-8.com/languages/html/)初級編を終了したので復習のために内容をまとめてみました。
初心者なので間違い等あれば是非ご指摘ください。

今回勉強に用いたのは[Progate](https://prog-8.com/)、無料で始められるプログラミング学習サイトです。
難易度は低く、初学者に優しいサイトでした。
今まで知らずにいたのがもったいない…

#環境構築
この記事を流し読みするだけでおおよそのイメージはつきますが、
実際に自分で手を動かして学習したいなら環境構築が必要です。
環境構築のやり方については次の記事を参考にしてください。
すごくわかりやすくまとまっています。
[Windowsの環境構築(Progate)](https://prog-8.com/docs/html-env-win)
[Macの環境構築(Progate)](https://prog-8.com/docs/html-env)
この記事も上と同じ環境で実行しています。
#HTML
###HTMLの基本
今回はHTMLとCSSを用いてサイトを作成しました。
index.htmlというファイルがトップページになるらしいのでそうしておきます。
次のような状態から少しずつ書き加えサイトを作っていきます。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
  </head>
  <body>
    <!--ここにページの本文を書きます-->
  </body>
</html>
```
カッコがいっぱいある…見づらい。
この状態だとページはまっさらです。
![HTML&CSS1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/b39e7fce-3a6a-2bf7-294a-266b58fd2d23.png)

なんのこっちゃ分からないと思いますが一つずつ見ていきましょう。

ここで説明するのはheadとbodyの部分です。
<!--ここにページの情報を書きます-->という文字がありますね。
これは**コメント**といいます。
HTMLでは分の中に書いたものを素直に全部表示してしまうので、
「表示しなくていいよ！」というところはコメントで書いておきます。
メモ書きによく使われます。
####タイトルと本文

```html:index.html
<head>
  <!--ここにページの情報を書きます-->
</head>
```
この部分に注目しましょう。
`<head>`と`</head>`、何が違うのか？
実はこれセットで使うものです。
`<head>`は「ここからページの情報を書きますよ！」
`</head>`は「ここまでがページの情報ですよ！」
という意味です。
それぞれ**開始タグ**、**終了タグ**と呼びます。
この書き方はHTMLでは何度も何度も使うので絶対に覚えておくべきところ。
ページの情報として何を書くのかといえば代表的なものはページのタイトルです。
ページのタイトルというのはこのページで言えば「HTML&CSS超入門1:HTML入門編」を指します。
ブラウザのタブに書いてある文字のことですね。
次のように書いてみます。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
  </body>
</html>
```
そうすると、
![HTML&CSS2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/86d1363f-5246-789f-db49-a8286905e486.png)

タブのところの文字が変わったのがわかりますか？

```html:index.html
<body>
  <!--ここにページの本文を書きます-->
</body>
```
次はこっちを見てみましょう。
さっきと同じように考えればいいでしょう。
`<body>`は「ここから本文を書きますよ！」
`</body>`は「ここまでが本文ですよ！」
という意味です。
`body`は本文を意味します。
今書かれているこの文章も`body`の中に書いてあります。
作るページの種類にもよりますが、一番長々と書かれるところです。
実際に書いてみます。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    Hello World
  </body>
</html>
```
そうすると、
![HTML&CSS3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/22b3b195-c69e-337c-4fa0-cbc6dd8d0ed9.png)
本文に文字が！
これだけでいろいろ書けますが物足りないですね。
まだまだ機能はいっぱいあるので見ていきますよ。
###改行

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    Qiita最高！
    Progate最高！
  </body>
</html>
```
これで改行してくれと思うんですが…
![HTML&CSS11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/b5b12769-f263-e23b-7cc2-4f58ddaf3036.png)
御覧の通り、横並びになってしまいます。
改行するには`<br>`を使います。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    Qiita最高！<br>
    Progate最高！
  </body>
</html>
```
これで改行されます。
![HTML&CSS12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/0c96cbb2-f48e-a873-5ccc-4ac990297489.png)
ほらこの通り！

###見出し
長い文章を書くときに必須なのが見出しです。
見出しがなければ見づらくてしょうがない。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <h1>h1の見出し</h1>
    <h2>h2の見出し</h2>
    <h3>h3の見出し</h3>
    <h4>h4の見出し</h4>
    <h5>h5の見出し</h5>
    <h6>h6の見出し</h6>
  </body>
</html>
```
そうすると、
![HTML&CSS4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/24143feb-b775-8f7d-d13c-bde226f42e11.png)
これで簡単に見出しを作ることができます。
`h1`が最も大きく、`h6`が最も小さくなっています。
###リスト
見出しのほかにもリストを作ることができます。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <ul>
      <li>Google</li>
      <li>Apple</li>
      <li>Facebook</li>
      <li>Amazon</li>
    </ul>
  </body>
</html>
```
そうすると、
![HTML&CSS8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/977b8a83-edc9-9d45-c5f1-9204a015f232.png)
リストを作るにはまず`<ul>`要素を作り、その中に`<li>`要素を作ります。

```html:index.html
<ul>
    <li>Google</li>
    <li>Apple</li>
    <li>Facebook</li>
    <li>Amazon</li>
</ul>
```
ここまで読んで気づいた方もいるかもしれませんが、
`<>`のような要素の中にさらに要素を入れるときは**インデント(字下げ)**をします。
`Tabキー`を用いるか`スペースキー`を何回か押すことでインデントをすることになります。
###サイトのリンク
今度はサイトへのリンクを貼る方法です。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <a href="https://qiita.com/">Qiitaへのリンク</a>
  </body>
</html>
```
そうすると、
![HTML&CSS6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/67ae110d-0286-7680-ad80-ca016fd2ea7a.png)

このような画面が現れ、リンクをクリックするとQiitaのページへ飛びます。
![HTML&CSS7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/5048d156-cc5c-9d48-b7b5-857568c0440e.png)

```html:index.html
<a href="https://qiita.com/">Qiitaへのリンク</a>
```
`<a>`要素を使ってリンクを作成できます。
`href`のように開始タグに入れるものは**属性**と呼ばれます。
`""`の中にurlを書くことでリンクでどこのサイトに飛ぶかを指定できます。
###画像の表示
文字ばかりでは寂しいので画像も入れてみましょう。

```html:index.html
<!DOCTYPE html>
<html>
  <head>
    <!--ここにページの情報を書きます-->
    <title>ページのタイトル</title>
  </head>
  <body>
    <!--ここにページの本文を書きます-->
    <img src="https://japaclip.com/files/internet-flaming-laptop.png">
  </body>
</html>
```
そうすると、
![HTML&CSS5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397212/4c18f23f-59da-3e59-c6e7-6e8b0c116021.png)

```html:index.html
<img src="https://japaclip.com/files/internet-flaming-laptop.png">
```
今回も属性を追加していますね。リンクを作成するときは`href`でしたが今回は`src`です。
これも`""`の中に画像のurlを指定することで画像を表示できます。


#最後に
ここまでHTMLの書き方をお見せしました。
主に文字を書いたり、画像を入れたりなど画面の要素を作っていくことが中心でした。
しかし、HTMLだけでサイトを作るとデザインが20年前のサイトみたいになります。
もっとサイトを見やすく作るためにCSSも学んでいきましょう！

次回[CSS入門](https://qiita.com/Kobayashi2019/items/5c5a30f811112f9bf27a)