まとまりのない雑な殴り書きですが、ご容赦ください!
セマンティックなHTMLはちゃんと理解したいですね!
- メタデータの
<title>
タグの文字は64文字まで - ul(ol)タグの直下に入れることができるのは
li
タグのみで、リストをリンクにしたい時はli
のなかでリンクを貼る。
<ul>
<li><a>link</a></li>
<li><a>link</a></li>
<li><a>link</a></li>
</ul>
-
a
タグには基本的に(ブロックを入れても反映はされるがセマンティックではないので)インラインのみいれる。
x
<a href="example.com"><div></div></a>
◯
<div><a href="example.com"></a></div>
W3School的には
スペース2個
のインデントが良いらしい。ただ、スペースかタブかの論争があり、ソフトタブ(tab
で2つのスペースを入力)が一番平和でいい解決策かも。table
タグは以下のように記述するとx軸y軸のような表になる。
<table>
<tr>
<th></th>
<th>heading</th>
<th>heading</th>
</tr>
<tr>
<th>heading</th>
<td>data</td>
<td>data</td>
</tr>
</table>
-
table
タグにはテーブルのタイトルを表すthead
タグと、テーブルのフッターを表すtfoot
タグがあり、それぞれ普通のtr
タグで代用できるが、thead
とtfoot
の方がセマンティック。
type="range"
要素
値をスライドで選択するform
のinput
のパーツの1つ。
<form>
<label for="doneness">肉の焼き加減は?</label>
<br>
<span>レア</span>
<input id="doneness" value="2" type="range" min="0" max="5" step="0.5">
<span>ウェルダン</span>
</form>
<datalist>タグ
<select>
にに似てるけど違うところとして、ユーザーはテキストエリアに入力して選択肢の中から選ぶこともできるし、自分の選択肢を送信することもできる。
セレクトボックスの選択肢が多い場合にも、ユーザーの助けになる。
<form>
<label for="souce">ソースの種類は?</label>
<input id="souce" list="souces" type="text" name="souce">
<datalist id="souces">
<option value="ketchup"></option>
<option value="mayo"></option>
<option value="mustard"></option>
</datalist>
</form>
↓予測変換みたいになるし、例えばこれに「BBQ」って入力して送信もできる。↓
HTML5での正規表現でのバリデーション
pattern
属性をinputに追加することで可能。
<input type="text" perttern="[a-zA-Z0-9]{4,15}" required>
↑のコードで「英数字4文字以上15文字以下」の意味になる(半角も全角も1文字カウント)。
HTML5のバリデーションのエラーメッセージのカスタマイズ
↓古い記事(2012)だけど参考にして↓
HTML5 Form Validation のカスタマイズ – GirlieMac! Blog
セマンティックHTML
「どこにどんなセマンティックなタグをつけるかは自由だ」、ということを前提にセマンティックなHTMLを書こう。
<header>
<nav>
-
<main>
-
nav
、footer
タグと分けられるタグ(つまりnavとfooterはmainの中に入れてはならない)。
-
-
<footer>
: ↓以下の情報を扱う。- Contact information
- Copyright information
- Terms of use
- Site Map (
nav
でも扱うことができる) - Reference to top of page links
-
<section>
- 章区切り
- 見出し区切り
- 同じテーマ区切り
-
<article>
- 1つで独立して成り立つ塊(記事、コメント、ブログ、etc.)
↑
<section>
と<article>
は文脈によって、お互いに子になったり親になったりできる。 -
<aside>
:<article>
や<section>
の後に設置して、意味を強めるためにも使われるタグ。あってもなくてもいいコンテントを含む。- Bibliographies : 参考文献
- Endnotes : 注釈
- Comments
- Pull quotes : 引用符
- Editorial sidebars : いわゆるサイドバー
- Additional information : 付加情報
<figure>
<figcaption>
: の中でのの立ち位置みたいな認識(間違ってたら教えてください)
<figure> について(やや堅苦しく)考える - Qiita-
<audio>
: 音楽ファイルを再生する。- 基本的に
<video>
タグと同じように使える。
- 基本的に
<audio
controls
src="/media/examples/t-rex-roar.mp3">Your browser does not support the
audio element.
</audio>
ただ、ブラウザごとに対応しているファイル形式が違う場合があるので<source>
タグを使っていくつかのファイル形式を定義しておくとセマンティックになる(全てのブラウザが同じファイルタイプをサポートしているわけではない)。
※↑これは<video>タグにも言えること❗️
<audio controls>
<source src="myAudio.mp3" type="audio/mpeg">
<source src="myAudio.ogg" type="audio/ogg">
<p>Your browser doesn't support HTML5 audio. Here is
a <a href="myAudio.mp4">link to the audio</a> instead.</p>
</audio>
※↓<audio>でも<video>でも使える属性
- controls : 再生/停止や全画面表示などの基本的な操作を行うパーツが追加される
- autoplay : ページがロードされるとすぐに再生される
- loop : リピート再生する
embed
: ⚠️古い書き方。<video>、<audio>、<img>を総括するタグだが非推奨(flashビデオやGIFには使う場面が多そう)⚠️
<embed src="download.gif"/>