1 |
wakaba |
1.1 |
#?SuikaWiki/0.9
|
2 |
|
|
[2] HTML 4 <IW:HTML4:"struct/text.html#whitespace">
|
3 |
|
|
は、次を[DFN[[RUBYB[[[空白]]] [white space]]文字]]としています。
|
4 |
|
|
- [[ASCII]] [[間隔]] ([CODE(char)[U+0020]] [CODE(char)[[[SPACE]]]]))
|
5 |
|
|
- ASCII [[タブ]] ([CODE(char)[U+0009]] [CODE(char)[HORIZONTAL TAB]])
|
6 |
|
|
- ASCII [[改頁]] ([[書式送り]]) ([CODE(char)[U+000C]] [CODE(char)[FORM FEED]])
|
7 |
|
|
- [[零幅間隔]] ([CODE(char)[U+200C]] [CODE(char)[ZERO-WIDTH SPACE]])
|
8 |
|
|
- [RUBYB[[[改行]]] [line break]]
|
9 |
|
|
-- [[復帰]] ([CODE(char)[U+000D]] [CODE(char)[CARRIAGE RETURN]])
|
10 |
|
|
-- 改行 ([[行送り]]) ([CODE(char)[U+000A]] [CODE(char)[LINE FEED]])
|
11 |
|
|
-- 復帰改行組 ([CODE(char)[[[CRLF]]]])
|
12 |
|
|
|
13 |
|
|
です。 HTML 4 の[[文書文字集合]]には他にも定義によっては空白文字に属する[[文字]]が色々含まれていますが、
|
14 |
|
|
HTML 4 の空白は上記だけです。
|
15 |
|
|
HTML 4 仕様書は、他の種類の空白の扱いについては規定せず、
|
16 |
|
|
[[著者]]は空白制御のためには適切な[[要素]]や[[スタイル]]を使うべき (should)
|
17 |
|
|
としています。
|
18 |
|
|
|
19 |
|
|
[3] [CODE(HTMLe)[[[pre]]]] 以外の HTML 要素では、
|
20 |
|
|
空白が「[DFN[語]]」を分離します。
|
21 |
|
|
(ここで、語とは、非空白文字の連続体のことです。)
|
22 |
|
|
[[UA]] は、[[書式付け]]に際して、その[[言語]]・[[用字系]]および対象[[媒体]]の慣習に従って語を識別し、これを配置するべきです
|
23 |
|
|
(should)。
|
24 |
|
|
|
25 |
|
|
語間に間隔 ([DFN[[RUBYB[語間] [inter-word]]間隔]]) を挿入すると見た目が向上するかもしれません。
|
26 |
|
|
しかし、間隔の取り方に関する慣習は言語・用字系により種々です。
|
27 |
|
|
HTML 4 仕様書が挙げている例では、
|
28 |
|
|
- [[ラテン文字]]では間隔を挿入する
|
29 |
|
|
- [[タイ文字]]では零幅間隔を挿入する
|
30 |
|
|
-- 注: [[タイ語]]は、日本語や中文のように語間間隔を入れずに表記します。
|
31 |
|
|
だけど零幅間隔を使えば単語境界を機械的に識別できるじゃん! という文脈でよく例になります。
|
32 |
|
|
(しかしながら、 [[TIS620]] には零幅間隔はないと思うし、本当に使われているんだか。)
|
33 |
|
|
- [[日本語]]や[[中文]]では全く語間間隔を表示しない
|
34 |
|
|
|
35 |
|
|
[[原始文書]]中の空白列は、全く異なって[[レンダリング]]されるかもしれないことに注意が必要です。
|
36 |
|
|
UA は、原始文書中の空白列をレンダリングするときにはまとめて1つ分の語間間隔にするべきです。
|
37 |
|
|
これは、自然言語情報 ([CODE(HTMLa)[[[lang]]]] 属性や上位プロトコルからの値)
|
38 |
|
|
が得られないときでも行うことができ、また行うべき
|
39 |
|
|
(can & should) とされています。
|
40 |
|
|
空白が重要なときには、 [CODE(HTMLe)[pre]] 要素型を使います。
|
41 |
|
|
|
42 |
|
|
[4] [[SGML]] の規定や既存 UA 実装の問題から、
|
43 |
|
|
[[開始タグ]]直後や[[終了タグ]]直前の空白が表示されることを当てにするべきではありません
|
44 |
|
|
(should not)。
|
45 |
|
|
|
46 |
|
|
たとえば、 [SAMP(HTML)[I <a>love</a> you.]]
|
47 |
|
|
を [SAMP(HTML)[I<a> love </a>you.]] と書いてしまうと、
|
48 |
|
|
意図とは異なることが多いでしょう。
|
49 |
|
|
|
50 |
|
|
SGML の問題は、[[記録開始]]や[[記録終了]]の無視に関する規則のことで、
|
51 |
|
|
[[タグ]]の前後に改行があるときに注意が必要です。
|
52 |
|
|
詳しくは [CODE(SGML)[[[SGML//空白]]]]を参照。 |