シンプルで合理的なHTML文書作成法入門:補足編

目次

あまり使わないが一応覚えておくと良い要素

abbr要素

abbr要素はマークした語句が略語(Abbreviation)であることを明示します。title属性で正式名称を附記しておくと、はじめてその略語を見かけた人にとっての助けになるでしょう。語句に対してマークする要素ですから、必然的にインライン要素になります。

ただ、必ずしも全ての略語にマークする必要はないと思います。例えば、ここの解説ではHTMLに対して一々<abbr title="Hyper Text Markup Language">HTML</abbr>などとマークしていません。記事自体が、HTMLという略語を理解していることを前提としているからです。あるいは「HTML(HyperText Markup Language)」のように括弧付けで書いた方が読みやすい場合もあるでしょう。

ここで紹介する要素は、こういった「ケースバイケース」によってマーク付けするかしないかを選択していく類のものです。

ins/del要素

ins/del要素は、それぞれマークした箇所が追記(Insert)/削除(Delete)されたものであることを明示する要素です

datetime属性で追記/削除した日時を、cite属性・title属性でその理由を附記することが出来ます。datetime属性はYYYY−MM−DDThh:mm:ss+09:00(年-月-日T時:分:秒±時差)という書式で指定します。時分秒を省略するときは全て0を記述します。

なお、この要素は少し特殊で、ブロック要素を包括する場合はブロック要素、それ以外ではインライン要素として振舞うよう定義されています。つまり、<del><p>〜〜</p></del>とマークした場合はブロック要素、逆に<p><del>〜〜</del></p>とマークした場合はインライン要素として振る舞うということです。まあ要するに、ブロック・インライン要素というの観念の例外と思っていただいて構いません。

こちらもabbr要素と同じく、追記/削除したという事実を特に強調したい(しなければならない)場合のみに使用すべきでしょう。

hr要素

hr要素は水平罫線(Horizontal Rail)を挿入する要素です。単に罫線を入れるだけですから、内容を持たない空要素になります。

マーク付けの観点から見れば非常に「異端」な要素です。現在では文章間のちょっとした間を設ける時などに利用されますが、特殊な要素であると認識してください。罫線は行から独立した存在であるため、ブロック要素です。

code/samp/var/kbd要素

それぞれ、プログラムなどのコード(code)、出力例(sample)、変数(Variable)、そしてキーボード入力例(Keyboard)をマークするための要素で、全てインライン要素です。主に技術解説文書に利用されるものですから、一般には使用されません(例えば、このHTMLの解説ではcode要素を頻繁に使用しています)

pre要素

pre要素は、マークされた文章が整形済みテキスト(preformatted textt)であることを明示するための要素です。整形済みテキストというものがよく分からない人は、要するにWindowsで言えば「メモ帳」で書いたプレーンテキストに近いものだと思っていただければ結構です。

一般に整形済みテキストは、等幅フォント(一文字の大きさが一定のフォント)で、画面端で勝手に折り返されずに表示されます(つまり、アプリケーションソフトは何ら整形のための処理を行いません)。また空白文字もそのまま表示されるため、プログラムのコードや詩など、改行や空白を保持したいテキストを書くときに利用されます。

但し、注意しておきたいのは、pre要素内でもHTMLの要素は有効である点です。例えば、HTMLの例文として次のような文章を書いたとしましょう。


<pre>
<code>
    <html>
    <title>一番簡単なHTML文章の例</title>
    <p>これが、一番簡単なHTML文章の例です。</p>
    </html>
</code>
</pre>

この場合、pre要素の子要素であるcode要素がHTMLの要素として有効であることはすぐに分かると思いますが、実はそのcode要素の子である例文中のhtml要素、title要素、p要素なども有効なHTMLの要素と解釈されてしまうのです。そのため、文字実体参照などを用いてアプリケーションソフトの誤読を回避する必要があります(なお、文字参照の他に後述の「CDATAセクション」を利用する手もあります)


<pre>
<code>
    <html>
    <title>一番簡単なHTML文章の例</title>
    <p>これが、一番簡単なHTML文章の例です。</p>
    </html>
</code>
</pre>

なお、pre要素内は整形済みのテキストでありますから、アプリケーションソフトによって空白数が変わるTAB文字は使わない方が良いとされています。

br要素

強制改行(Line Break)を挿入する要素で、hr要素と同じく中身を持たない空要素です。段落は変わらないものの改行が必要――という、非常に特殊なケースに用いられる要素です。実際、高天原下でbr要素を使っているケースは極めて稀です。

なお、時折p要素の代わりにbr要素を連発しているHTML文書を見かけますが、もちろん誤用であることは言うまでもありません。アプリケーションソフトの中には、連続するbr要素を無視するものも存在します。

別途解説記事が独立している要素

style要素

style要素は、簡単に言えばscript要素のスタイルシート版です。スタイルシートは文書全体に適応されるものですから、必然的にhard要素内の要素になります。スタイルシートについての詳しい解説はまたいずれ書く予定です。

link要素

link要素は文書間の関係を明示し、ハイパーリンクを実現する要素です。要はa要素の文書全体版です。詳しくは当サイトのlink要素覚書を参照してください。

meta要素

meta要素は文書全体の情報(メタ情報)を挿入する要素です。例えば文書の作者、連絡先、或いは文書内で使用するスクリプトの言語などを記述します。詳しくは当サイトのmeta要素覚書を参照してください。

div/span要素

div/spam要素はそれぞれ文章をブロック/インライン要素として分割(Division)するための要素です。title属性やclass属性と併用してHTML要素内にない要素をマークすることが出来ます。詳しくは当サイトのdiv/span要素覚書(未公開)で解説する予定です。

table要素群

table要素(ならびにそれに附随するいくつかの要素)は表(table)をマークするための要素です。情報を二次元にまとめられるわけですから、うまく使えば文章を綺麗にまとめることができます。が、数あるHTMLの要素のうちでも一番誤用が多く、また煩雑であるのもこのteble要素です。詳しくは当サイトのtable要素群覚書(未公開)を参照してください。

今のところ当サイトでは解説しない、解説する予定がない要素

script/noscript要素

script要素はHTML内にjava script等のスクリプトを埋め込む要素です。当サイトではスクリプトの解説はいたしませんので、script要素の解説もしないつもりです。

object要素

汎用的なオブジェクトを挿入し、HTML文書上でマルチプレゼンテーションを実現させる要素です。簡単に言えば、img要素やscript要素など、テキスト以外のための要素を統合したものです。

ただ、その定義自体が非常に曖昧である上に、HTMLが本質的にマルチプレゼンテーションに適しているのかを筆者は疑問視しているため、ひとまず解説しないことにしました。

base要素

相対パスを解決するための基準URIを指定する要素です。初心者には少々専門的ですので、敢て解説しません。

font/b/s/l要素など

それぞれ字体(font)を変化させるための要素です。HTMLの本質からかけ離れた存在ですので、使用すべきではありませんし、解説もしません。字体の定義はスタイルシートで行うべきです。

CDATAセクション

当解説では、ことある毎に繰り返し「HTML文書内で<や>や&を使うときは実体参照を利用してください」と言い続けてきました。が、リンク先のアドレスぐらいならまだしも、プログラムのコードなどを載せる時までいちいち実体参照を利用していたのでは、はっきり言って不便きわまりません。

そこで、HTMLには「ここからここまでの文字は特殊な記号として解釈しなくても良い」ということを表す特殊なマーク付けが用意されています。それがCDATAセクションで、<![CDATA[ 〜〜 ]]>という具合にマークします。先のHTMLコードの例で言えば、


<pre>
<code>
<![CDATA[
    <html>
    <title>一番簡単なHTML文章の例</title>
    <p>これが、一番簡単なHTML文章の例です。</p>
    </html>
]]>
</code>
</pre>

とマークすれば良いのです。但し、CDATAセクション内に]]>はどうやっても書き入れる事は出来ないという点に注意してください(]]>はCDATAセクションの終了を表す唯一の「記号」として解釈されるからです)

なお、CDATAセクションはマーク付けの一種ですが要素やタグではありません

より厳密に言えば、CDATAセクションはHTMLの決まりではなく、HTMLの基となったSGMLという規格の決まりです。また、CDATAというデータ形式にも色々細かい規則があるのですが、そうはいっても普段利用する上で問題になるようなことはまずありませんので、余力があれば参考に調べて覚えておく程度で良いでしょう。