HTMLの基本的な書き方をマスターしよう

#HTMLの基本的な書き方を身に着けよう
今回はWebページの土台となるファイルを作成する言語である**HTML**にフォーカスしていきます:smiley:
HTMLをどんなルールで書きすすめていくのか、また書き方について見ていきます。
※プロジェクトとHTMLファイルは作成済みとします。

こちらの記事でHTMLのファイルを作成しました:point_down_tone2:
[HTML/CSS/JSデモ](https://qiita.com/Yuriko-Y/private/ff8f671168dd1ce0c8b3)

今回の記事

- HTMLの基本文法とタグ
- 見出しをつけよう
- 文章を表示しよう
- 画像を挿入しよう
- リンクを張ろう
- リストの表示の仕方
- 表を作ろう


#HTMLの基本文法とタグ
HTMLでは「<○○>」「</○○>」のような**タグ**と呼ばれるものを使用します。
HTMLでは基本的に文字列をこのタグに挟んで記述していきます。

<○○>…**開始タグ**
</○○>…**終了タグ**
開始タグから終了タグまでの1つのかたまりを**要素**といいます。


タグには種類があり、どのタグで挟むかによって役割が変わってきます:point_up_tone1:

####タグを書く時のルール
タグを書く時にはいくつかルールがあります。
:one:半角英数字で書く

```html:良い例

<p>ひたすら寝ています</p>

```

```html:悪い例

＜ｐ＞ひたすら寝ています＜／ｐ＞

```

:two:大文字、小文字
基本的に大文字、小文字の区別はありません。バージョンによっては、小文字で記述する必要はあるので、**小文字で統一する**のがいいでしょう。

####入れ子(タグの中にあるタグ)
HTMLでは、開始タグと終了タグの間に別のタグが入っていることが多くあります。タグの中にあるタグを書く書き方を**入れ子**といいます。

```html:例

<p><strong>入れ子</strong>の書き方</p>

```

####タグに情報を書き加える
開始タグの中にそのタグについての付加情報を書くこともあります。この情報の種類のことを**属性**といいます。また、その情報の内容のことを**値**といい、「”(ダブルクォーテーション)」で囲んで記述します。

```html:例：Googleのリンクを指定した時の例

<a href="https://www.google.com">Google</a>

```
href...href属性
https://www.google.com …値

#見出しをつけよう
それでは、実際に様々なタグを使ってページの土台を作っていきます:relaxed:
まずは、**見出し**を作ってみます。「h」は「heading」の略です。「h1～h6」の6種類の大きさがあります。

```html:見出し

<body>
    <h1>1番大きい見出し</h1>
    <h2>2番目</h2>
    <h3>3番目</h3>
    <h4>4番目</h4>
    <h5>5番目</h5>
    <h6>6番目</h6>
</body>


```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/feb52d43-aaf0-94f5-4d40-ae55a3dc76ba.png)

※リセットCSSを反映させると見出しの大きさは全部変わらないので注意‼

####見出しの使い方
見出しタグは大見出しh1から順に使っていき、中見出しがh２、小見出しがh3のように大きい見出しから数字で順を追っていきます。

```html:

  <h1>猫の実態</h1>...大見出し

  <h2>猫が好きなこと</h2>...中見出し
  <h3>ご飯を食べること</h3>...小見出し
  <h3>お昼寝すること</h3>
  <h3>毛づくろいをすること</h3>

  <h2>猫が嫌いなこと</h2>
  <h3>水に濡れること</h3>
  <h3>爪を切ること</h3>

```

**h1は基本的に一つのWebページにつき1度利用のほうが良いとされています。**

#文章を表示しよう
文章を囲うのはpタグです。段落を意味する「Paragraph」からきています。
改行がない文章は読みにくいので、pタグを追加して段落を分けて表示するとよいでしょう。

```html:
<p>毛づくろいは、舌にある無数の突起をブラシ代わりにして、行います。</p>
<p>猫は、起きている時間の30〜50％を毛づくろいに費やすほどキレイ好きです。</p>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/1eee2750-8b4a-5aff-2824-8e37d506b230.png)

pタグを連続にすると自動的に改行されます。


#画像を挿入しよう
画像はimgタグを使います。

```html:
<img src="cat.jpg" alt="猫の画像">
```
src属性…どの画像を表示するか
alt属性…画像が読み込めなかったときに出るテキスト

もしフォルダに画像を入れてなかった場合、以下のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/6a83806e-6405-f3c5-9f1f-fcb8fa98592a.png)
####ファイルパスの指定
src属性に表示したい画像ファイルを指定するということですが、画像が呼び出し元のページ(index.html)から見てどこにあるかを指定してあげる必要があります。
そこで**ファイルパス**で指定したい画像の場所を示す必要があります。
ファイルパスの指定の仕方は**相対パス**と**絶対パス**があります。

####相対パス
基本的なパスの書き方で、呼び出し元のファイルから見た、対象ファイルの位置を指定します。

**例：同じフォルダ内に保存されている場合**
sampleプロジェクトの中に呼び出し元(index.html)と画像があります。
![コメント 2020-03-14 153758.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/597edf5e-2272-4630-9c7a-842dc0e1a8b4.png)

```html:
<img src="cat.jpg" alt="猫の画像">
```
この場合は単純に表示させたい画像のファイル名をsrc属性の中に入れます。

**例：別のフォルダーにあるファイルを呼び出す場合**
sampleプロジェクトの中に呼び出し元(index.html)とimgファルダがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/62fa0679-f519-2050-18f8-80448e25e977.png)
imgファルダの中に画像があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/3f86f493-2a2c-9c37-c4b9-08f35f568ee5.png)

```html:
<img src="img/cat.jpg" alt="猫の画像">
```
この場合は「フォルダ名/ファイル名」と書きます。

**例：呼び出し元ファイルも別のフォルダーにある場合**
sampleプロジェクトの中にtopとフォルダとimgファルダがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/be50cb99-c9f2-c55f-35f4-ed0a62b664d6.png)

topフォルダの中に呼び出し元(index.html)とimgファルダの中に画像がある状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/73102be4-69d8-4fed-1e2b-dace0cc18c3a.png)

```html:
<img src="../img/cat.jpg" alt="猫の画像">
```
この場合は「../」を使います。**1つ上の階層に行く**という指定をしてあげます。

####絶対パス
絶対パスは呼び出したいファイルが別のWebサイトで公開されている場合などに指定します。相対パスのようにファイル保存されてる位置は関係ありません。「https:/～」のように書きます。

```html:
<img src="https://www.pakutaso.com/shared/img/thumb/tomcatDSC09085_TP_V.jpg" alt="猫の画像">
```
#リンクを張ろう
リンクはWebページの必須要素とも言えます。テキストや画像をクリックして別のページに移動することが可能です。リンクは「＜a href=""＞」と「＜/a＞」で囲みます。hrefの後にファイルパスを指定します。別のWebページの場合は「https:/～」のような絶対パスを指定します。

```html:例：リンクを指定した時

今すぐ<a href="https://www.pakutaso.com/">pakutaso</a>で画像探し‼

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/c20ee8e1-ddeb-c1b8-ce6f-90ffc14add78.png)

リンクの部分が青くなり、下線が引かれます。
####画像にリンクを張ろう
画像(imgのタグ)とリンク(aタグ)を組み合わせて、画像に以下のようにリンクを張れます。

```html:例：画像にリンクを張る
<a href="https://www.google.com">
<img src="img/cat.jpg" alt="">
</a>
```
![GIF 2020-03-15 14-24-53.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/cf7e517a-1ee4-8607-3936-1ee8eb7db3aa.gif)

####メールアドレス宛てのリンク
メールアドレスのリンクを張るときはhref属性に「mailto:」と記述し、続けて送り先のメールアドレスを入れます。ユーザーがリンクをクリックすると使用しているメールクライアントが立ち上がり、送信先にそのメールアドレスが入力されます。

```html:
<a href="mailto:メールアドレス">お問い合わせ</a>
```
#リストの表示の仕方
Webサイトで使われてる黒丸付きの箇条書きや番号付きのリストの書き方を紹介します。
####箇条書きリスト
箇条書きリストにはulタグを使用します。そしてulタグの中にliタグを追加し、リスト項目を追加していきます。

```html:
<h3>買い物リスト</h3>
<ul>
    <li>卵(3個)</li>
    <li>塩</li>
    <li>醬油</li>
</ul>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/18782f13-df8f-6cc8-e471-9ea6ec1cc518.png)

####番号付きリスト
番号付きリストはolタグを使います。

```html:
<ol>
    <li>卵を割り、調味料を加える</li>
    <li>卵を混ぜる</li>
    <li>フライパンに移す</li>
    <li>かき混ぜながら火をを押したら完成</li>
</ol>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/36543bd2-f730-69e1-b589-34006faf363f.png)

#表を作ろう
時間割や料金表など、様々な表を作成するために使えるのがtableタグです。


| **タグ**      | 目的       |
|:-----------------|:-----------------|
|＜table＞    　    |表を示すタグ。表全体を囲む。
|＜tr＞         |「Table Row」の略で、表の1行を囲む。　　
|＜th＞         |「Table Header」の略で、表の見出しとなるセルを作成。
| ＜td＞        |「Table Data」の略で、表のデータとなるセルを作成。

図のイメージだとこのような感じです:point_down_tone2:
![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/8fb1fb4c-7f7b-58b2-8dde-e9c9939a4b8c.png)


以下は簡単な表の例を見てみましょう。

```html:
<table border="1">
    <tr>…行
        <th>プラン名</th>…見出し
        <th>料金</th>
    </tr>　
    <tr>
        <td>わくわくプラン</td>...セル
        <td>月額2500円</td>
    </tr>
    <tr>
        <td>にこにこプラン</td>
        <td>月額1900円</td>
    </tr>
</table>

```
上のコードだとこのような結果になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/eccea65c-724f-cec8-531b-9cb42f6ba0da.png)

####セルをつなげる
複数のセルをつなげることも可能です。
以下が基本となる表です。

```html:
<table border="1">
    <tr>
        <th>セル1</th>
        <th>セル2</th>
    </tr>　
    <tr>
        <td>セル3</td>
        <td>セル4</td>
    </tr>
    <tr>
        <td>セル5</td>
        <td>セル6</td>
    </tr>

</table>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/ee0c7159-4bcb-3f95-4d28-c3060be24a53.png)

####横方向につなげる
セルを横方向につなげたいときは、つなげたいセルの＜th＞タグまたは、＜td＞タグにcolspan属性を追加します。「colspan」にはつなげたいセルの数を書きます。

```html:
<table border="1">
    <tr>
        <th colspan="2">セル1+セル2</th>
    </tr>　
    <tr>
        <td>セル3</td>
        <td>セル4</td>
    </tr>
    <tr>
        <td>セル5</td>
        <td>セル6</td>
    </tr>

</table>

```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/8262342b-22f2-c02d-818c-17158f8b29c0.png)

####縦方向につなげる
セルを縦方向につなげたいときは、rowspan属性を追加しますつなげたい横方向を同様にしてつなげたいセルの数を書きます。

```html:

<table border="1">
    <tr>
        <th>セル1</th>
        <th>セル2</th>
    </tr>　
    <tr>
        <td rowspan="2">セル3+5</td>
        <td>セル4</td>
    </tr>
    <tr>
        <td>セル6</td>
    </tr>
</table>

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562982/b756bab8-5378-47f2-a039-512659138e3d.png)

お疲れさまでした:relaxed:
これでHTMLの基礎は終了です。
次回は**フォーム**の学習です:bangbang: