HTML,CSSでのwebサイト制作の手順とポイント

こんにちは、フロントエンドエンジニアの[てりー](https://twitter.com/teriteri_code)です。
僕の詳しいプロフィールは[こちら](https://terrblog.com/about/)

個人的には2024年現在は未経験・独学からプログラミングで稼ぐにはフロントエンド開発が1番手っ取り早いと考えています！

https://terrblog.com/programming-first-front-end/

# はじめに

本記事は

「progateやドットインストールなどでhtml、cssの文法的なインプットはしたが、いざwebサイトを作成する場合にどの手順を踏めば良いのか？？」

という人を初学者を対象にhtml、cssを使ってwebサイトを作る際の手順と、その際に念頭におくべき事をまとめたものです。

拙い内容だとは思いますが、参考になれば幸いです！

※本記事はデザインが既にできている場合の手順になります。
``①~③の過程は実際にデザインツールか紙を使って書く事を強くお勧めします！！``

# ①デザインの全ての要素を隙間のない□で埋める！

## ポイント
・全てを□で隙間なく埋め切る事が重要！


## 例 赤線にて区切り
<img width="702" alt="スクリーンショット 2020-03-23 12.13.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/7f31eb45-8169-2af0-2b56-d65f837290f8.png">

↓

<img width="704" alt="スクリーンショット 2020-03-23 12.18.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/ba7984ae-999d-3de3-3864-5b69cdead641.png">


# ② ①で区切った□をさらに1つ1つを細かいパーツに分ける

## ②-1 まずは大きなパーツから分けていく(青線)
<img width="703" alt="スクリーンショット 2020-03-23 12.27.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/12ea54a6-6cd4-9e67-d5a6-87561d9628ae.png">

## ②-2 大きなパーツの中を更に細分化できる所まで分けていく(緑線)
<img width="702" alt="スクリーンショット 2020-03-23 12.34.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/bcda288c-991b-8f00-7605-f4ce718a954b.png">


## ポイント
・大きな□の中に小さな□が敷き詰められている状態になる
・この□の1つ1つがdiv要素であると考える！！(正確にはdiv以外のタグも使うが、、)

# ③ □の1つ1つに名前(class名)を付ける！！

## ③-1 赤線で囲った□に名前をつける

<img width="877" alt="スクリーンショット 2020-03-23 12.58.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/fb2eb04b-20d5-ac4a-d2f4-4d2258ddfeaa.png">

## ③-2 線で区切った□に名前をつける
<img width="561" alt="スクリーンショット 2020-03-23 13.02.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/6e0009fc-fcc9-b8f2-fc72-05059b2b1a8e.png">

## ③-3 緑で区切った□に名前をつける
<img width="458" alt="スクリーンショット 2020-03-23 13.07.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397606/fff2fe2c-b0a1-3120-f372-27e38a767af0.png">


## ポイント
・大きい部分から名前をつけていく(赤線→青線→緑線)
・名前は基本的に重複なく付ける
・全く同じパーツを複数回使うときは、同じ名前をつける
・名前の付け方(命名規則)はプロジェクト単位で行う→1人でのプロジェクトでないなら、名前を付けた段階でレビューを入れると良い！！

## 参考用：代表的な命名規則について
https://webdesign-trends.net/entry/9214


# ④ htmlで□をネスト構造(入れ子構造)で書いていく

例：上記のbody1部分

```html

<div class="body1">//赤線
    <div class="contents">//青線
      //緑線 <div class="img"><img src="" alt=""></div>緑線//
      //緑線 <div class="text"><p>説明文説明文</p></div>緑線//
     </div>青線//
    <div class="contents">//青線
      //緑線 <div class="img"><img src="" alt=""></div>緑線//
      //緑線 <div class="text"><p>説明文説明文</p></div>緑線//
     </div>青線//
    <div class="contents">//青線
      //緑線 <div class="img"><img src="" alt=""></div>緑線//
      //緑線 <div class="text"><p>説明文説明文</p></div>緑線//
     </div>青線//
</div>//赤線

```

## セマンティクスwebについて
セマンティクスwebはモダンなhtmlの書き方として、html5から導入された「``より要素の内容に沿ったhtmlタグ使おうとする考え方``」です！！
構造の綺麗なhtmlを書く事ができ、SEOなどの対策になります！！

先ほどのhtmlは分かりやすさ重視の為に、全ての要素をdivタグで囲いましたが、セマンティクスwebを導入するとdivの代わりに様々なhtmlタグを使用していく事になります。

例

```html

<main class="body1">//赤線
    <article class="contents">//青線
      //緑線 <div class="img"><img src="" alt=""></div>緑線//
      //緑線 <div class="text"><p>説明文説明文</p></div>緑線//
     </article>青線//
    <article class="contents">//青線
      //緑線 <div class="img"><img src="" alt=""></div>緑線//
      //緑線 <div class="text"><p>説明文説明文</p></div>緑線//
     </article>青線//
    <article class="contents">//青線
      //緑線 <div class="img"><img src="" alt=""></div>緑線//
      //緑線 <div class="text"><p>説明文説明文</p></div>緑線//
     </article>青線//
</main>//赤線

```

htmlを書く際はセマンティクスwebを意識してhtmlタグを工夫すると良いでしょう！！

## 参考用：セマンティクスwebについての詳細
https://developer.mozilla.org/ja/docs/Glossary/Semantics


## ポイント
- 「赤線の要素→青線の要素→緑線の要素」が入れ子になるようにhtmlを書く
- htmlをまず書き出して、必要としている要素が全て出力されているかブラウザで確かめる


# ⑤cssにてデザインを整える
htmlでブラウザ上に各要素は出力されているので、cssでデザインに沿ってよしなにスタイリングして下さい。


# まとめ
この手順は、「``とにかくブラウザ上で成果物が目で見える状態にする。その上で細かいスタイリングを行なっていく！``」という考え方に基いたものです。

こうする事で第三者に対して、早い段階から成果物の進捗を共有しやすくなったり、cssなどの挙動をブラウザで、いちいち確認できるといった恩恵が受けられます。

## 独学でフロントエンドエンジニアを目指している人へ

フロントエンドの仕事を得るまでにどんな勉強をしたら良いのかをまとめました！！

興味ある方は是非ご覧ください。

https://terrblog.com/how-to-get-front-end-job/