WEBCRE8.jpウェブクリ8.jp

webデザイナーによる、デザインとwebを楽しむ情報ブログ

調べる。

備忘録としてwebやデザインについて調べたり
新しく知ったことなどを書き残していくカテゴリです。

[HTML5 入門]HTML5要素に指定できる属性の分類、書き方の違いについて

この記事は約8分ぐらいで読めます

HTML5の入門の助けになる記事を書いていきます
WEBCRE8.jpではHTML5のタグについて記事を多く書いていますが、今回は属性について。どの要素にどの属性を使えるか、どう書くか。それは属性の分類を知ることでわかりやすくなります。

WEBCRE8.jpではHTML5の入門記事をたまに書いています。私が販売しているHTML5KARUTAも、こうしたHTML5の学習のための活動の一つですが、タグだけを覚えてもちゃんとしたコーディングは出来ません。

HTML5KARUTA - 「HTML5カルタ」で覚えるHTML5の108つのタグ

http://roadstohtml5.com/html5karuta/

HTMLの各要素には属性というものがあります。これもまあまあたくさんあるので全部解説するわけではないんですけど、まずこの記事ではどういう種類のものがあるのかを確認してみましょう。

…といいつつこれは私の備忘録でもあるんですがw 興味ある人はお付き合いください★

HTMLの属性とは

HTMLにおける属性(Attribute)とは、HTMLで各要素のタグに指定する設定の事です。例えばハイパーリンクであるa要素のaタグにはhref属性を指定します。href属性の属性値(value)にはURL等が入りますね。

要素自体のタグ名の後に続く一つ一つが属性です。そしてその属性には、予め指定できる属性値が一つに決まっているもの、いくつかに決まっているもの、ルールが決まっているもの、なんでも指定できるものがあります。

グローバル属性(Global attributes)

その前にまずはリファレンスで頻繁に見かけるこの言葉の解説。

グローバル属性(Global attributes)とは、HTML全てのタグにつけることのできる属性です。

  • accesskey
  • class
  • contenteditable
  • contextmenu
  • dir
  • draggable
  • dropzone
  • hidden
  • id
  • lang
  • spellcheck
  • style
  • tabindex
  • title
  • translate
  • 独自データ属性
  • イベント・ハンドラ・コンテンツ属性
  • role属性とaria-*属性
HTML5のグローバル属性

id属性、class属性、accesskey等を見るとわかる通り、これらはその要素のモードやCSS等の外部リソースとの結び付けを表すもので、どのタグにも設定できなければ困るようなものです。他の属性も見てみて、「へーこれ設定出来たんだ」とか納得してくださいw

今回は一つ一つの意味については触れずあくまで分類とその扱いについてだけの話です。

その他グローバル属性についての解説はおなじみHTML5.jp、そしてAdobe Developer Connectionの文書に詳しいです。

独自データ属性(data-* attributes)

独自データ属性(data-* attributes)とは、data-に続く任意の文字列からなるユーザーが自由に定義してよい属性です。マークアップ、またはフレームワーク等を作成する人が勝手に作っていい属性で、グローバル属性と同じくどのHTMLの要素にも設定できます。とは言え無目的に作っても仕方ないですがw

例を挙げるとjQuery Mobile、Twitter Bootstrap等のフレームワーク内で使用されています。「data-roleって何だろう?」と思ったこともいるかと思います。あれは勝手に作ってるって事ですねー。

イベント・ハンドラ・コンテンツ属性(Event handler content attributes)

イベント・ハンドラ・コンテンツ属性(Event handler content attributes)は、それぞれの属性に決められたタイミングで発生する処理を設定するための属性です。これらもどのHTML要素にも設定できます。

  • onabort
  • onblur
  • oncanplay
  • oncanplaythrough
  • onchange
  • onclick
  • oncontextmenu
  • oncuechange
  • ondblclick
  • ondrag
  • ondragend
  • ondragenter
  • ondragleave
  • ondragover
  • ondragstart
  • ondrop
  • ondurationchange
  • onemptied
  • onended
  • onerror
  • onfocus
  • onformchange
  • onforminput
  • oninput
  • oninvalid
  • onkeydown
  • onkeypress
  • onkeyup
  • onload
  • onloadeddata
  • onloadedmetadata
  • onloadstart
  • onmousedown
  • onmousemove
  • onmouseout
  • onmouseover
  • onmouseup
  • onmousewheel
  • onpause
  • onplay
  • onplaying
  • onprogress
  • onratechange
  • onreadystatechange
  • onreset
  • onscroll
  • onseeked
  • onseeking
  • onselect
  • onshow
  • onstalled
  • onsubmit
  • onsuspend
  • ontimeupdate
  • onvolumechange
  • onwaiting
HTML5のイベント・コンテンツ・ハンドラ属性

これも一つ一つの解説は割愛します。

role属性(ARIA Role Attribute)、aria-*属性(aria-* attributes)

一応触れておきますが、WAI-ARIAのaria-*とつく属性もグローバル属性に含まれます。これについては後々記事を書きたい、というかもっと勉強したいと思ってるんですけどなかなか…w

論理属性(Boolean attributes)

論理属性(Boolean attributes)とは、on状態とoff状態しかない属性のことです。

例えばcheckeddisabled等です。

  • checked
  • disabled
  • reversed
  • seamless
  • readonly
  • loop
  • hidden
  • open
  • scoped
  • multiple
  • async
  • defer
  • ismap
HTML5の論理属性

video要素のautobuffer属性とtime要素のpubdate属性は廃止されています。

これらはchecked="checked"checked=""checkedとこれらのうちどのような書き方をしていてもonになります。私は気持ち悪いのでいちいちchecked="checked"と統一した書き方をしています。

列挙属性(Enumerated attributes)

列挙属性(Enumerated attributes)は、いくつかの決められたキーワードのみが設定でき、それがそのモードを表す属性です。

  • autocomplete
  • contenteditable
  • dir
  • draggable
  • enctype
  • formenctype
  • formmethod
  • method
  • scope
  • shape
  • spellcheck
  • type (command)
  • type (button)
  • type (input)
  • type (menu)
  • wrap
HTML5の列挙属性

列挙属性については以下のサイトが参考になりました。

列挙属性

まとめ

大体この記事で書きたかったことは書きました。他に情報の足らないところ、指摘等ありましたらお願いします。

その他、仕様書には様々な用語が出てきます。HTMLを書くには要素の次に属性にも詳しい理解が必要となってくるわけですが、「○○は△△が使える」と一つ一つ覚えていったところで全てを覚えるのは大変でしょう。

学生の頃の英語の勉強のように暗記しても仕方ないわけですから、ここは各要素、属性を体系的に理解し、「こういう機能だからこういうことが可能だろう」といったような覚え方をした方が早道だろうというわけです。また、仕様書には頻繁に専門用語が出てくるのでこうした言葉を覚えておくことも必要ですよね。

調べる前に、前提知識を持ってある程度自分で検討をつけられるようになっておけば日ごろの調べ物もスムーズになると思います★