[12]
:[[開始タグ]]:必須
:[[終了タグ]]:必須
:[[内容モデル]]:[CODE(SGML)[(%[[inline]];)*]]
:出現できる文脈:[CODE(SGML)[%[[block]]]] な文脈
:[[属性]]:
,[CODE(HTMLe)[[[align]]]] , , ,[[配置]] ,[HTML4] 非推奨
,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,[HTML4] %[[coreattr]]
,[CODE(HTMLa)[[[datafld]]]] , , ,欄名 ,[HTML4] 予約
,[CODE(HTMLa)[[[dataformat]]]] , , ,データ書式 ,[HTML4] 予約
,[CODE(HTMLa)[[[datasrc]]]] , , ,データ源 ,[HTML4] 予約
,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,[HTML4] %[[i18n]]
,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[lang]]]] , , ,[[自然言語]] ,[HTML4] %i18n
,[CODE(HTMLa)[[[xml]]:lang]] , , ,自然言語 ,[XHTML1]
,[CODE(HTMLa)[[[onclick]]]] , , , ,[HTML4] %[[events]]
,[CODE(HTMLa)[[[ondblclick]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeydown]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeypress]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeyup]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmousedown]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseout]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseover]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseup]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]] , , ,注釈的題 ,[HTML4] %coreattr
[[#comment]]
** 付番
[14] [[付番]] [VAR[n]] (注 >>15) は、 [[IETF]] や [[W3C]]
の規定する [[HTML]] 仕様では [CODE(HTMLe)[1]]〜[CODE(HTMLe)[6]]
が定義されています。
HTML 4 仕様書によれば、 [CODE(HTMLe)[h1]] が最も重要度が高い見出し、
[CODE(HTMLe)[h6]] が最も重要度が低い見出しです。
[15] 注意: [[SGML]] 的 ([[SGML宣言]]および [[DTD]] 的) 意味では [VAR[n]]
は付番とは言えませんが、付番は付番です (開き直り)。
[17]
[[Word]] 9 は 7 を超えると、 [CODE(HTMLe)[[[class]]]] が [SAMP[MsoHeading8]] のような [CODE(HTMLe)[[[p]]]], [CODE(HTMLe)[[[div]]]] または [CODE(HTMLe)[[[li]]]] を吐く模様です。 9 まで確認されています。
([[名無しさん]])
[18]
>>17 Word 10 でも同じ。
([[名無しさん]])
[19]
付番を文書ではなく文書群に対するものと考える人も少なくないようですが、それは誤りです。
([SAMP(URI)[toc.html]] は [CODE(HTMLe)[h1]] からはじめて、 [SAMP(URI)[section1.html]] は [CODE(HTMLe)[h2]] からはじめて、 [SAMP(RUI)[section1-subsection2.html]] は [CODE(HTMLe)[h3]] からはじめて、・・・というような使い方は誤り。)
元々付番は文書の中で使うもので、文書群なんてものは考えられていません。
(しかし想定外なのですから、文書の一部分を別の文書に持っていった際に付番はそのままにしたようなもの、と考えるのも悪くはない気がしますね。どうしたものでしょう?)
([[名無しさん]])
[20]
[[LaTeX]] で [CODE[[[part]]]] とか [CODE[[[chapter]]]] がなくて [CODE[[[section]]]] が最上位だったりするのは普通なことですから、 SGML や HTML で [CODE(HTMLe)[h2]] くらいから始まっていても悪くはないような気もします。付番の最初は SGML 的に規定されていませんし。
やっぱり [[XHTML 2]] のような水準に中立なモデル化が何も考えずに済むので便利でしょうかね。
[[#comment]]
*** 付番の飛び越し
[9] たとえば
[PRE[
]PRE]
のように、 [CODE(HTMLe)[h2]] の抜けた [[HTML文書]]があります。
HTML 2 や HTML 4 の DTD 的にはこのような文書も[[妥当]]です。
[10] しかしながら、見出しの水準は飛ばすべきではありません
[SRC[RFC 1866 5.4.]] し、飛ばすのを良く思わない人もいます [SRC[HTML 4]]。
飛ばすことによって他の形式への変換に支障をきたすこともあります
[SRC[RFC 1866 5.4.]]。
[[#comment]]
** 見出し要素の応用
*** 目次生成
[13] [[UA]] は、見出し要素を使って文書の[[目次]]を自動生成することができます [HTML4]。
[[#comment]]
*** レンダリング
[16] [[視覚ブラウザ]]は、通常、重要度の高い (付番の小さい) 見出しをより低い
(大きい) 見出しよりも大きく描画します [HTML4]。
[2] 古い [[mosaic]] の日本語版では、 [CODE(HTML)[h1]]〜[CODE(HTML)[h6]] 各要素の大きさが6段階であるべきなのに、3段階にしかならないことがあったそうです。
[24] 古い時代の典型レンダリング [SRC[RFC 1866 5.4.]]:
,要素型,太字,斜体,大きさ,左右余白,上下余白
,[CODE(HTMLe)[h1]],○,×,非常に大きい,中央寄せ,"1,2行"
,[CODE(HTMLe)[h2]],○,×,大きい,左揃え,"1,2行"
,[CODE(HTMLe)[h3]],×,○,大きい,十分字下げ,"1,2行"
,[CODE(HTMLe)[h4]],○,×,普通,[CODE(HTMLe)[h3]] より字下げ,"1行"
,[CODE(HTMLe)[h5]],×,○,普通,[CODE(HTMLe)[h4]] 程度字下げ,"上1行"
,[CODE(HTMLe)[h6]],○,×,普通,[CODE(HTMLe)[h5]] より字下げ,"上1行"
[[#comment]]
**** 番号振り
[8] HTML 自体では、見出しに自動的に章節番号を与えることはできません。
しかし、そのような [[UA]] はありますし、[[スタイル言語]]を併用することで[[著者]]がこれを制御することも可能です。
[SRC[HTML 4 ]]
これが可能なスタイル言語の例としては、 [[CSS2]] や [[XSL]]
や [[DSSSL]] が挙げられます。 ([[JSSS]] はどうだろう?)
[[#comment]]
*** その他
[[#comment]]
** 不思議解釈
[3] [CODE(HTML)[h[VAR[n]]]] 要素型群が見出しであるとしながらも、文字の大きさを変えるのに使うこともできると説明している文章もあります。後者の間違った用法しか説明しない完璧な[[不思議]]解説もいやらしいですが、この種のもなあ。
[4] 見出し要素型群がまともに使ってもらえなくなったのって、
絶対 [[NN]] の既定のスタイルシート (もしかしたら [[mosaic]] のも。)
で見出しの大きさがはちゃめちゃだった影響が8割くらいありますよね。
見出し水準1は馬鹿でかいし、
水準4以下は普通の文字よりも小さい。
普通の文字より小さい見出しがいったいどこの世の中にありますか。
であるからにして、 NN が登場してから [[CSS]]
が普及するまで、見出しタグを使うとウェブ頁が正視に堪えられなくなるという状態だったわけですよ。
ふと目をそらせば [CODE(HTMLe)[[[font]]]]
タグが漂っている。どっちが常識的な選択かは明らかでしょ。
[5] もちろん、 >>4 は昔話であって、
現代でありながら見出しを正しく使っていない文書の著者は間抜けですよ。
[6] [WEAK[(よくわからないけど仮に mosaic でも NN みたいにまともじゃない見出しの文字の大きさだったとして、)]] mosaic の多く (多分、ある時点よりあとの版) は利用者設定のスタイルシートを実装していて、見出しの文字の大きさも自分で指定できたと思うのですけど、できたからといってちゃんとまともな大きさにしていた人がどれだけいたか。
[[#comment]]
** 例
[22] 見出しを含む簡単な文書片 [SRC[RFC 1866 5.4.]]
[PRE(HTML)[
This is a heading
Here is some text
Second level heading
Here is some more text.
]PRE]
[[#comment]]
** メモ
[7] 見出し要素は、節の始まりを暗示しているのでありますが、 [[DTD]]
的あるいは [[XML]] 的にはどこからどこまでが節なのか明示することまではできません。
HTML 4 仕様書は、 [CODE(HTMLe)[[[div]]]]
要素を使ってこれを明示する例を示しています。
ちなみに、 [[XHTML 2]] は [CODE(XHTMLe)[[[section]]]]
という新要素型を導入しています。
[[#comment]]
* [CODE(SGMLe)[h[VAR[n]]]] 要素型群 (SGML)
[25] [[SGML]] では一般に古くから[RUBYB[[[見出し]]][[[heading]]]]を表す要素型として
[CODE(SGMLe)[h[VAR[n]]]] がよく使われています。
[[付番]]は [CODE(SGML)[1]] から始まって数個程度で、 [CODE(SGMLe)[h0]]
が使われることもたまにあります。
[26] [[LaTeX]] 式の [SAMP[chapter]], [SAMP[subsection]]
のような名前による区分とは異なり、
何も考えずに番号で深さを表現できる点で優れています
(と考えた人が [CODE(SGMLe)[h[VAR[n]]]] 式見出し・章節構造を採用しています)。
[27] 採用例:
- [[JIS X 4151]]
-- 参考3 4.2.3 の例文 [ABBR[(純)][純粋見出し方式]] [CODE(SGMLe)[h1]]〜[CODE(SGMLe)[h4]]
-- 参考6 1. の DTD 例 [ABBR[(節)][章節開始位置方式]] [CODE(SGMLe)[h0]]〜[CODE(SGMLe)[h4]]
- [[HTML]] [ABBR[(純)][純粋見出し方式]] [CODE(HTMLe)[h1]]〜[CODE(HTMLe)[h8]]
-- [[JIS X 4152]]:2000 (非 SGML 応用) [ABBR[(純)][純粋見出し方式]] [CODE(HTMLe)[h1]]〜[CODE(HTMLe)[h3]]
[28] 純粋見出し方式: [CODE(SGMLe)[h[VAR[n]]]] はその名の通り、
見出しそのものを表します。見出しを含む章節は、
他の要素型によって明示・暗示される場合もあれば、 SGML
的には表現されずにその応用独自の方法や発見的方法でのみ得られる場合もあります
([[ISO-HTML]] 準備用は前者、標準の HTML は後者)。
例:
[PRE(SGML)[
大見出し
章の内容
小見出し
節の内容
小見出し
別の節の内容
]PRE]
要素型定義の例:
[PRE(SGML)[
]PRE]
[29] 章節開始位置方式: [CODE(SGMLe)[h[VAR[n]]]]
は見出しの開始を表すタグとして使いますが、実はその章全体を含む要素になっています。
例:
[PRE(SGML)[
大見出し
章の内容
小見出し
節の内容
小見出し
別の節の内容
]PRE]
この例のように、[[文書実現値]]だけを見れば >>28 の場合と同じですが、
次のような要素型定義を使うと、異なった文書木が得られます。
要素型定義の例:
[PRE(SGML)[
]PRE]
この要素型定義を使うと、先の例は次のように解釈されます。
[PRE(SGML)[
[INS[]]大見出し
[INS[]]
章の内容
[INS[
]][INS[]]小見出し
[INS[]]
節の内容
[INS[
]]小見出し
[INS[]]
別の節の内容
[INS[
]]
]PRE]
[30] 付番方式: 深さを要素型名の番号で表す際の宣言とマークの便宜のために、
SGML には[[付番]]という機能があります。 (折角用意されているのに optional
な機能なのでほとんど使われていません。)
例:
[PRE(SGML)[
大見出し
章の内容
小見出し
節の内容
同じ節の内容
小見出し
別の節の内容
]PRE]
実は >>28-29 と同じ例でも良いのですが、
付番の省略の機能を使うように少し変えてみました。
要素型定義の例:
[PRE(SGML)[
]PRE]
先の例は、次のように解釈されます。
[PRE(SGML)[
大見出し
章の内容
小見出し
節の内容
同じ節の内容
小見出し
別の節の内容
]PRE]
[[#comment]]
* メモ