Progateでの学習メモ　HTML,CSS編

Progateで学習したことのメモ
学習したことと、その時調べたことまとめ

#HTMLとCSS
そもそも言語だってわかってなかった(･_･;  

- HTML（HyperText Markup Language）:Webページの要素や構造を形づくる言語
- CSS（Cascading Style Sheets）:Webページの文書構造にデザインを施し、見栄えを整える言語
- CSSのメリット
 - 作業の効率化
 - ページの軽量化、読み込み速度向上
 - HTMLで表現不可能な装飾
 - SEO（検索エンジン最適化）に対応
 - 複数レイアウトに使い分け可能（TV、印刷、ブラウザなど）

#HTMLに触れてみよう！編
| タグとか|説明|
|:-------|:-----|
|`<h1>`|見出し。`<h６>`まであり、`<h６>`が最小の見出し。|
|`<p>`|段落|
|`<!-- -->`|コメント|
|`<a href="リンク先のURL">実際にブラウザに表示されるテキスト</a>`|リンク|
|`<img src="画像のURL">`|画像の表示。終了タグは不要。|
|`<li>`|リスト。インデントで入れ子になる。|
|`<ul>`|囲んだ`<li>`の要素の先頭に黒の点がつく。|
|`<ol>`|囲んだ`<li>`の要素の先頭に連番がつく。|

#CSSに触れてみよう！編
- サンプルソース
 
```index.html
<h1>Hello World</h1>
<p>プログラミングの世界へようこそ</p>
```
```stylesheet.css
h1 {
  /* 文字の色:赤 */
  color:#ff0000;
}

p {
  /* 文字の色：青 */
  color:#0000ff;
}
```
- cssのソースで「h1」（要素）をセレクタ、変更項目をプロパティ
- /* */で囲んだ行がコメント
- font-size：文字の大きさを指定。ピクセル単位なので、pxをつける。
- font-family：フォントの指定。スペースが入るフォント名については”をつける。それ以外はつけない。
- 「#dddddd」のように同じ値が続く場合は、「#ddd」と省略可能。
- 特定の要素にCSSを適用する場合　→ 要素に名前をつける

```index.html
<h2>レッスン一覧</h2>
<ul>
  <li class="selected">HTML</li>
  <li>PHP</li>
  <li>Ruby</li>
</ul>
```
```stylesheet.css
li {
  color: #444;
}
.selected{
  color:#ff0000;
}
```
- 要素にclassを使って名前をつけることによって、別々のCSSを適用する可能となる。
- class名でCSSを指定する場合には、先頭にドット「.」が必要

#レイアウトを作ろう！編
- `<head>`要素にはページに関する情報、`<body>`要素には実際に表示したい内容。
- `<!DOCTYPE html>`の部分はDOCTYPE宣言。HTMLのバージョンを宣言
- `<head>`の内容例
 - `<meta charset="utf-8">`  
  文字コードの指定。ページの文字化けを防ぐ。
 - `<title>Progate</title>`  
 ページのタイトルの設定
 - `<link rel="stylesheet" href="stylesheet.css">`  
 HTMLからCSSの読み込み。href属性で読み込むCSSファイルを指定。
 - レイアウトは`<div>`要素によって構成。「div」は「division」の略で、要素をグループ化するために使用。
 
#ヘッダーを作ろう！編
- `float:left;`：要素を横並びにする
- `padding: 値;`：余白を入れる。値を4つ、スペース区切りで指定する場合、「上」「右」「下」「左」の順で指定。

#フッターを作ろう！編
ヘッダーとフッターのリストで異なるCSSを適用する場合

```index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Progate</title>
    <link rel="stylesheet" href="stylesheet.css">
  </head>
  <body>
    <div class="header">
      <div class="header-logo">Progate</div>
      <div class="header-list">
        <ul>
          <li>プログラミングとは</li>
          <li>学べるレッスン</li>
          <li>お問い合わせ</li>
        </ul>
      </div>
    </div>

    <div class="main">
      <!-- 略 -->
    </div>

    <div class="footer">
      <div class="footer-logo">
        Progate
      </div>
      
      <div class="footer-list">
        <ul>
          <li>会社概要</li>
          <li>採用</li>
          <li>お問い合わせ</li>
        </ul>
      </div>

    </div>
  </body>
</html>

```
```stylesheet.css
.header-list li{
  float: left;
}
```
上記のように指定すると、「header-list」の中の`<li>`要素にのみCSSを適用できる。


#コンテンツを作ろう！編
- main要素は、「copy-container」、「contents」、「contact-form」の3つの要素
- 文中の一部にCSSを適用させたい場合は、`<span>`要素で囲む
- paddingはborderの内側の余白を作る
- marginborderの内側の余白を作る。  
- 指定パターは以下の通り
 - 上下左右を個別で設定
 - 上 右 下 左の順で値を4つ、スペース区切りで指定
 - 上下 左右の順で値を２つ、スペース区切りで指定

#お問い合わせフォームを作ろう！編
- `<input>`要素は１行のテキスト入力用の要素。終了タグは不要。type属性にsubmitを指定すると、入力欄ではなく、ボタンが表示される。
- `<textarea>`要素は複数行のテキスト入力を用の要素。

```index.html

      <!-- 略 -->

      <div class="contact-form">
        <h3 class="section-title">お問い合わせ</h3>
        <p>メールアドレス（必須）</p>
        <input/>
        
        <p>お問い合わせ内容（必須）</p>
        <textarea></textarea>
        
        <p>※必須項目は必ずご入力ください</p>
        <input class="contact-submit" type="submit" value="送信" />
      </div>

      <!-- 略 -->

```

- 複数のセレクタをコンマ（,）で区切ることで、それらに同じCSSを適用。

#以上
とりあえず初級編終了！

#参考
- [Progate](https://prog-8.com/)
- [今さら聞けない！CSSとは【初心者向け】](https://techacademy.jp/magazine/4857)
- [ホームページの作り方：さきちんうぇぶ CSSのメリット](http://sakichin.com/chapter02/chapter02_step01_03.html)