このページ自体が教材です。左の見た目と右のコードを見比べて、気になったところをファイルの中で直接書き換えてみてください。上の「骨組みを表示」を押すと、それぞれの部品がどのタグでできているか見えます。
文章の骨格は h1〜h6 と p でつくります。見出しは大きさで選ぶのではなく、内容の階層で選びます。
ふつうの段落です。strong は重要な語、em は強調したい語に使います。
改行したいときは
brタグを使います。
<h3>中くらいの見出し</h3>
<p>ふつうの段落です。
<strong>strong</strong> は重要な語、
<em>em</em> は強調したい語。
</p>
<p>改行は<br>こうします。</p>
ul は順序のない箇条書き、ol は順番に意味があるとき。リンクは a の href に行き先を書きます。
<ul>
<li>順番は関係ない項目</li>
<li><a href="https://...">リンク</a></li>
</ul>
<ol>
<li>手順が決まっているもの</li>
</ol>
alt は画像が見えない人・読み込めないときのための説明文です。省略しないでください。ここでは外部ファイルを使わず、SVGを直接書いています。
<!-- 写真を置くとき -->
<figure>
<img src="cat.jpg" alt="窓辺で寝ている猫">
<figcaption>図1:説明文</figcaption>
</figure>
見出しのセルは td ではなく th。border-collapse:collapse を指定すると罫線が1本になります。
| タグ | 役割 |
|---|---|
| thead | 見出し行のまとまり |
| tbody | 中身の行のまとまり |
| th | 見出しのセル |
<table>
<thead>
<tr><th>タグ</th><th>役割</th></tr>
</thead>
<tbody>
<tr><td>th</td><td>見出しのセル</td></tr>
</tbody>
</table>
label の for と入力欄の id をそろえると、ラベルを押しただけで入力欄が選ばれます。使い勝手が大きく変わる部分です。
<label for="n">お名前</label>
<input type="text" id="n" placeholder="山田 太郎">
<button type="submit">送信する</button>
CSSでいちばん最初につまずくところ。すべての要素は「中身・padding・border・margin」の入れ子でできています。色は開発者ツールと同じ配色にしてあります。
/* 幅の計算をわかりやすくするおまじない */
*{ box-sizing: border-box; }
.box{
margin: 22px; /* 外側 */
border: 6px solid #1e2320;
padding: 22px; /* 内側 */
}
親に display:flex を書くと、子が横に並びます。gap がすき間、flex:1 をつけた子だけが余白を吸って伸びます。
.parent{
display: flex;
gap: 8px;
flex-wrap: wrap; /* 入らなければ折り返す */
}
.child-b{ flex: 1; } /* ここだけ伸びる */
行と列をまとめて決めたいときはGrid。1fr は「余ったぶんを1として分ける」という単位です。
.parent{
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 8px;
}
.wide{ grid-column: span 2; } /* 2列ぶん使う */
同じ色を何度も書くかわりに --名前 で定義しておくと、1か所直すだけで全体が変わります。このページの配色もすべてそれで管理しています。
:root{
--shu: #c8362a;
--marker: #ffd84d;
}
.button{ background: var(--shu); }
/* 単位:px=固定 / rem=文字基準 / % と fr=割合 / vw=画面幅 */
:hover はカーソルが乗ったとき、:focus-visible はキーボードで選ばれたとき。transition を足すと、その変化がなめらかになります。下のボタンに触れてみてください。
button{
background: #1e2320;
transition: background .18s ease, transform .18s ease;
}
button:hover{
background: #ffd84d;
transform: translateY(-2px);
}
画面幅によってCSSを切り替えます。ブラウザの窓を横に縮めてみてください。700px以下になると下の帯の色が変わり、このページの2列組みも1列に変わります。
@media (max-width: 700px){
.resp{ background: #ffd84d; }
.split{ grid-template-columns: 1fr; }
}
左に書くと右にすぐ出ます。ページを読み込み直すと元に戻るので、思いきり壊して大丈夫です。