はじめに
Top pageでHTMLに関する間違った常識に対する不満を色々書いていたのですが、どうも量が増えてきそうなので、新たにこのようなページを作りました。
ですから、ここはHTMLに関する個人的な雑記で、入門や、書き方を示すところでは有りません。
また、タイトルからわかると思いますが、書いている本人の理解不足による間違った記述なども見られるとは思います。その辺は、指導していただければとても嬉しく思います。
Top pageから
2002.07.13 [最近発行されたHTML辞典のこと] [目次]
ちょっと立ち読みで確認したところ、結構まともな内容になっていますね。
しかし、HTML4.01が公開されて2年半、4.0から数えたら約5年、まともな本が出版されるまでにちょっと時間がかかりすぎているような気がしますね。
(過去の本のひどさはBakera World 2000 の鳩丸倶楽部にある「のけぞる本」を参考にしてください。)
とはいえ、重箱の隅をつつくようなことをすれば、下記のように間違った記述もちらほらとありますけど以前ほど気にする必要は内容に思えます。
<code>タグの使い方の説明でプログラムやHTMLのソースを丸々codeタグで囲んであるのを見かけます。
実はこれは使い方の間違いで、HTML4.01の仕様書を見る限り、インライン要素の強調と同列に扱われています。(前述の使い方だとブロック要素として規定されている必要があります。)
ですから、本来は文中に「INPUT」と言うような命令文が出てきたときに囲むのが正式な使い方のようです。
日本語では、そこだけ英語になるのでわざわざ強調しなくともわかるので理解しにくいとは思いますが、英語の文書では強調しないと判りにくいのでこのようなタグが用意された物と思います。
以前にも書きましたが、日本語の環境ではほとんど意味のなさないタグですね。
2002.07.09 [Internet Explorerお断り] [目次]
いや、特に意味はないのですが、Internet Explorerだと文字表示サイズが5段階でしか選べないと言う部分をついて、文字サイズを10%位にして文字サイズ1000%にして見てくださいとすればInternet Explorer では見れないページを作成できるなぁと考えてしまったわけです。(Netscape 6以降かOpera でしか見れないページって言うのもたまには有っても良いような気がしませんか?)
2002.05.21 [・・・独り言・・・] [目次]
「このサイトは(特定のwwwブラウザ名)で確認しております。他のブラウザでは・・・」と言うのをよく目にします。
なんか間違ってますよね。
HTMLの本来の書き方であれば、どのようなwwwブラウザで見ようと書き手の意思は伝わります。(見え方までは伝わりませんが、そんな物は同じブラウザでも使用環境が変われば、見え方も変わるものだからさほど気にする問題じゃないでしょう。)
ちなみにwwwブラウザのみによるHTML文書の確認には、文法ミスに気が付かないと言う罠が待ち構えている事も理解しておく必要が有りますね。
ちなみにHTMLの文法ミスとは、「終了タグ抜け」、「不許可な入れ子状態」、「不許可なタグ属性」、「タグ要素のスペルミス」など色々と有ります。
ちなみに当サイトは、HTMLチェッカー3種類、wwwブラウザ7種類で確認しています。(と大法螺吹いておこう。日常の更新はノーチェックの時が多いけど、一番最初のベースはちゃんとチェックしています。)
ここまで書いていて、HTMLチェッカーを紹介しないのは不親切だと思ったので、私の使っているHTMLチェッカーを紹介します。
紹介の順番は私の検証順だと思ってください。
- HTMLクイックチェッカ ver0.07
松本 要(まつもとかなめ)氏製作のWin32環境で作動するHTMLチェッカーです。フォルダー内のHTMLを一括でチェックでき、サイト内リンクのチェックもできるので重宝しています。
- Another HTML-lint
オンラインによるHTMLチェッカーです。
本家W3CのValid HTMLより細かいチェックを行っているようです。また日本語なのが嬉しいですね。
- Valid HTML 4.01!
本家W3CのオンラインによるHTMLチェッカーです。
このHTMLチェッカーにパスすると、このページの一番下に有るバナーを貼っても良いよと言ってくれます。
ただ、英語版しかないのがちと使い難いところですかね。
2002.05.16 [HTML辞典あら捜し。第六回] [目次]
SPAN要素の記述
う〜ん、インラインスタイルシートってかいてある。
インラインスタイルシートってなんですか?
SPANはDIVといっしょで、これと言った意味の割り当てがありません。
ですから、スタイルシートの呼び出しぐらいにしか使い道がないのも事実です。
ですから、インラインで新たな意味を明示するような時に使用するのが正しい使い方だと思います。(たとえば SPAN class="date"見たいな使いかたです。)
ま、スタイルシートを抜きに考えるからこんな事になるのでしょうけどね。
NN4xあたりまで対象にしようとすると、スタイルシートに触れられないと言う事実もあります。
そういった意味ではNN4xって、こまったチャンなwwwブラウザですね。
2002.05.15 [HTML辞典あら捜し。第五回] [目次]
CODE要素の記述
いや、「説明自体はプログラムコードの記述に使います。」
と、しごくまっとうな説明になっているのですが、サンプルが次のようになっており、とんでもない間違いをしでかしています。
<CODE> <PRE> (中略:プログラムソースが入っていると思ってください。) </PRE> </CODE>
う〜・・・CODEはインライン要素と書いてあるのに、ブロック要素のPREを含んでいる・・・
<PRE><CODE>(中略)</CODE></PRE>の順なら文法上は間違いにならないのでまだ許せますけど。(その書き方でも使い方は間違えています。)
本来は、「<CODE>DsPrintf</CODE>はDsSDKにおいて・・・」と言うようにプログラムの命令文に使っている単語等を囲むのが正しい使い方のようです。
まぁ、日本語ではそこだけアルファベットになるのでほとんど必要の無いタグ要素ですね。(英語だと紛らわしいので結構必要になるタグ要素かもしれませんけど。)
今考えると、上記サンプルのように使うのであれば、CODE でなく SRCとかいったブロック要素のタグになるはずですね。(そんな物は無いけど、あったら嬉しいかも。)
とはいえ、PRE タグはソースの表示ぐらいにしか使えないので、無くてもさほど不自由じゃないですけど。
一応、HTMLの解説書等の類には説明がありますが、弊害について述べられているのを見たことがありません。
まぁ、相手が指定したフォントを持っていないと同じ見え方にならないのは自明の理なのですが、日本語環境ではその時にwwwブラウザが間違って日本語フォントを持たないフォントを選ぶ事があるみたいです。(見え方どころか内容がまったく見えなくなってしまいます。)
日本語環境では使ってはいけない指定なので、その事にもっと触れて欲しい物です。
2002.05.14 [HTML辞典あら捜し。第四回] [目次]
を!、前回から1週間も間が開いてしまった。
まぁ気を取り直して再開します。
コメントを挿入すると言うところの例として<!-- DOCTYPE … -->等となっています。(・・・をいをい。)
これで!DOCTYPE宣言文の記述がおかしかった理由がわかりました。
この本を書いた人、編集した人すべてが!DOCTYPE宣言文の存在を知らず、!DOCTYPE宣言文をコメントとして記述している物と勘違いしていたようです。
前にも書きましたが、<!DOCTYPE...>は使用するDTD(Document Type Definition:文書形式の定義)を宣言するための命令文です。間違ってもコメント文では有りません。
<!で始まり>で終わる文はSGMLでは命令文として扱われます。
HTMLでは!DOCTYPE宣言文とコメント挿入にのみこのSGMLの命令文を利用しています。(だから、<!--...-->と<!DOCTYPE...>はタグではなくて命令文です。)
ちなみにコメントは命令文の中で--で囲まれた部分をコメントとして扱います。
ですから、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">を<!DOCTYPE HTML --HTMLを宣言しました-- PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" --HTMLのバージョンはHTML 4.01 Transitionalです-->とコメント付きで記入する事も可能です。(普通しませんけどね。)
すんません、私の勘違いで<!...>を命令文と書いてしまいました。
<!...>は単なる宣言文で、本来はタグの使い方を宣言するための物です。
2002.05.12 [・・・独り言・・・] [目次]
う〜ん、最近見難いWeb Site が多いような気がします。(特にマスコミ系がひどいような・・・)
TABLEで高解像度で見ないとまともに見えないようなデザインをしているのはもとより、ページを読みこむのに何であんなに時間がかかるのでしょうかねぇ。
その上、読みこんでからもスムーズにスクロールしなかったり。
誰も彼もが最新機器で高速通信しているわけでも無いというのに、ほんと何を考えているのか。(最新機器で高速通信している方が少数派のはず。)
もう少し考えてデザインしてもらいたいものですね。
2002.05.11 [IE6の変な常識] [目次]
また、HTML関連の話です。
IE6では次の2つの!DOCTYPE宣言文を別物として認識するそうです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
じつは、上の書き方が正式な書き方で、下の書き方は単なる省略形で本来同じ物なのです。
それを別物として認識するIE6って何なのでしょう?(このIE6のローカルルールのために、別物と勘違いして説明している本が有りました。)
ここからは、憶測による話になりますが、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">と書いていながら、HTML4.01の文法から外れているHTMLが多く流通しています。
単にそれと、HTML4.01の文法に正式にしたがったHTMLを見分けるための苦肉の策といったところなのでしょうか?
ちなみに当Web Site では省略形を使用しています。
2002.05.10 [TABLEによるレイアウト] [目次]
TABLEによるレイアウトの事を少々書きます。
最近、Web Siteをデザインする上で、TABLEによるレイアウトはほぼ当たり前のように使用されています。
ただ、TABLEによるレイアウトは次のような欠点が有る事を認識した上使用するべきでしょう。
- フォントサイズをユーザー側で変える事によって簡単に崩れるデザインであること。
- 狭い画面で見た時に、非常に見難いデザインになること。
特に2番目の欠点は、今後色々な携帯端末が増えてきそうなことを考えると致命的な欠点であるように感じます。
まぁ、閲覧条件がまったく同じと言う事が殆どありえないのがWebなわけですから、そんなにデザインにこだわるのも無駄なような気がしますね。(OS&WWWブラウザが同じでも、同じ文字サイズとは限りませんから。)
反対に、サイズが変わってもさほど崩れないデザインをしておけば、画面の狭い携帯端末でもそれなりに見れ、画面の広い固定端末だとより快適に見れるWeb Site を作成する事も可能だと考えます。(私の目標はそれです。)
2002.05.08 [・・・独り言・・・] [目次]
また、HTMLのタグ要素に関する話です。(最近こればっかり。他にねたが無いものでご勘弁を。)
えっと、某有名Web Site 上で次のような記述を見かけました。
<span class="****"> <table> (中略) </table> </span>
W3Cの規定したHTML4.01のDTDではspan要素の中にtable要素を含む事ができません。
なのになぜか、MicroSoftのIEでは、この記述でも作成者が意図した通りに見れてしまうようです。
なぜこの表記方法がだめなのかを言いますと、W3Cの規定したHTML4.01に添った形のHTMLビュワーであれば、tableの前に</span>タグが抜けているものと解釈し、</span>タグを自動的に補填する可能性が有るからです。</span>タグを自動的に補填した場合spanのclass属性がtableに反映されず、製作者の意図とは違った見え方になるはずです。
ではどのように記述すれば良いかと言いますと、spanの代わりにdiv要素を使用すれば問題ありません。
このような規則に従わないHTML文法を曲解してしまうIEって、なんなんでしょう。
2002.05.07 [HTML辞典あら捜し。第三回] [目次]
DIVに関する記述。
「行揃えを行う」
などと見出しから大嘘が書かれていますね。
W3Cの規定した、HTMLの仕様書には、Generic Language/Style Container
と書かれております。(「汎用ブロックコンテナ」
等と呼ぶ方もいます。)
これではちょっと意味が解り難いと思いますが 、ある部分からある部分までを区切りそれがひとまとまりのものである事を示すのに使用します。
これでもちと解り難いと思いますが、位置決めのためだけに使用するものでは無いことをご理解願います。
たとえば、「こういう書きたをすると見え難いですよ。次にサンプルを示します」。などとして、サンプルの中身を<DIV class="sample"></DIV>で括るような使いかたをするのが正式な使いかたでしょう。
W3Cによって意味の規定されていない、意味を文内に付けるのに使うのが本来の使用方法です。
まぁ、殆ど意味の無いタグなので、ちょっと見た目を代えるのに使用するのも有りでしょうが、行揃え以外の事にも使用できますので、行揃えを行うタグと言うのは不正確な表記ですね。
でないと、DIV要素のalign属性が非推奨になっている理由が理解できなくなってしまいます。(align属性はDIVだけで無く全面的に非推奨か。)
引用(blockquote)や作者情報(address)等の、専用のタグ要素が用意されている物はそれを使用しましょう。
「HTML4.0では、同じ効果の<DIV align="center">〜</DIV>を使用することを推奨しています。」
て・・・、どこの規定したHTML4.0の事だろう?
W3Cでは、<DIV align="center">〜</DIV>の書き方も非推奨ですよ。
どうせなら、スタイルシートにDIV.centering{text-align:center;}と記載し、<DIV class="centering">〜</DIV>を使用すれば同じ効果を得る事ができます。とでも書いておいて欲しいよなぁ。
2002.05.06 [HTML辞典あら捜し。第二回] [目次]
h1〜h6要素に関する記述。
まず、<Hn>〜</Hn>と言う誤解しやすい書き方をおこなっていますね。
本来は、h1,h2,h3,h4,h5,h6と言う6種類の別要素です。まぁ、まとめて書きたいのであればh1〜h6と書くのが妥当なところでしょうか。
それは良いとして、いきなり「見だし(Header)」
と間違った訳をやってくれています。(見だしは合っています。Headerは文の頭につける"・"や数字などの事じゃないのかなぁ、規定書はHeadingです。)
見出しの順序を指示するためのタグなのですが、見出しとは書かれてますが、それ以外の説明がなっていないので、使いかたの理解ができませんでした。
h7とかf1とか言うタグも有ると勘違いしました。
あと、hと言うタグで後の数字が引数であると言う勘違いもしましたね。(これは、最初の表記方法のせいです。)
そんなものは存在しませんね。
ついでに良くある間違いの、文字サイズが変わるとしてくれています。
これは、単にNNやIEのローカルルールです。
ちなみに、見出しの順序が、わかるような表現であればどのような表現(たとえば、h1はセンタリング、h2以降数字が大きくなるにつれて、インデント位置がずれて行く。)でも良い事になっています。
2002.05.05 [・・・ふと思った事・・・] [目次]
意味付けタグしか使用しないHTMLの書き方を行えば、PDAのような表示の横幅が狭い機器においてもそれなりに見やすいページになるのではないかな?との考えが思いつきました。
ブラウザの横幅を狭めてみて確認したら、この考えに間違いは無いと思える結果か出ました。
ザウやポケットPCで試して見てください。
2002.05.04 [・・・独り言・・・] [目次]
下の!DOCTYPE宣言文の疑問が少し晴れました。
Another HTML-lintのAnother HTML-lint 結果の解説に載っていました。(何を見ていたんだろう・・・)
結論から言いますとNNやIE独自拡張DTD用の!DOCTYPE宣言文は無いと言うことです。(DTDが存在しないのか、それても非公開なだけなのかは解りません。)
IEは3のbeta版までは存在していたようです。
と言うことは、NNやIEのローカルルールでは!DOCTYPE宣言文の無い書き方の方が正式な書き方なのでしょうか?
ここでまた新たな疑問が、ISOの制定したDTDもあるとの事なのですが、一般的ではないようです。
なぜISO版を使用せずに、W3C版を使用するのか?と言うのが不思議です。
私の感覚では、規格策定においてはISOが最も権威の有る団体なのですが・・・
ついでに、DTDに無い拡張タグ要素を含んだ書式をHTMLと読んでも良いのでしょうか?
2002.05.04 [・・・独り言・・・] [目次]
下の文章を書いた後に、本屋へ行ってHTMLの本を何冊か立ち読みしてきました。
最近出た本はそこそこまともになっていますね。
(未だに!DOCTYPE宣言=HTMLのバージョン宣言となっているのがほとんどですけど。)
まぁ、入門書を選ぶのなら新しいものの中から選びましょう。
間違っても、「<HTML>がHTML文書である事の宣言」なんて書いてある本は買わないように。
で、下に書いた独自拡張のDTDを調べようと思ってMicroSoftのSiteを覗いて見たのですが、なんと公開しているドキュメントがWORD形式・・・MicroSoftだからしかたないか。(私の環境にはWORDが入っていないので読めません。WORDを始めとするワープロと言われているソフトは使わないので持っていません。最悪印刷が必要な時は年賀状作成ソフトで事足りるもので。)
と言う分けで調査を諦めました。(だれか、独自拡張のDTDの事について知っておられる方がおりましたら教えてください。)
ついでに、どんなHTMLのソースかなと覗いて見ると・・・<span>の中にTABLE要素が・・・IEの独自拡張DTDではOKなのでしょうか?
(ちなみにHTML4.01 Transitionalでは不可です)
2002.05.03 [SGMLと!DOCTYPE宣言文について] [目次]
正しいHTMLの知識を身につけて行くにつれて色々と調べていると、市販の解説書にSGMLのことが説明されていないことを嘆いているSiteによくぶつかります。
私の感覚では、説明されていることが望ましいが、必修条件ではないような気がします。
理由は、うまく説明すればSGMLのことに触れなくても、!DOCTYPE宣言文の重要性やHTMLの基本的なことは説明することができるからです。
ただ、私にとっては、!DOCTYPE宣言文の重要性や、HTMLが文書構造を規定する(見え方を規定できない)ものであることを説明していないことの方が重要です。
また、NNやIEでの見栄を重要視して、独自拡張のタグ要素まで説明しているのであれば、NNやIE独自拡張DTD用の!DOCTYPE宣言文見本も付けるべきでは無いでしょうか。
独自拡張を避けている私には必要が無いので、どのような宣言方法になるのかは知りませんが、規定された物が存在しているはずです。
SGMLに関しては、私の知識も知れたものですから。(HTMLがSGMLの上で作られている事と、XMLに取って代わられようとしているぐらいのことしか知りません。)
2002.05.03 [HTML辞典あら捜し。第一回] [目次]
当Siteの改訂作業なのですが、遅々として進んでおりません。
どうやら、一から作り直した方が早そうな気がしてきました。
文書改訂をしているのであまり更新したくないのですが、まったく更新しないのもなんなので、当面はこのページのみの更新となります。
で、更新のねたなのですが、目の前に「HTML辞典」と言う適切なものが有るじゃないですか。(笑)
てなわけで、当面その本の間違い探しを更新ねたにして行こうと思います。
あえて出版社及び正式な書籍名は伏せさせてもらいます。ただ、似たようなタイトルを持つ市販の書籍が同じような間違いを起こしていることも事実です。
有る意味私の言っている間違いを起こしていない書籍があれば、それは優良な書籍でしょう。
まえもって言っておきますが、私はHTMLの専門家では有りませんし、私の言っている内容に間違いが有ることも無いとは言いけれません。
ついでに、「間違えた観念を教えられた。」と言う恨みもあります。
で、第1回として!DOCTYPE宣言文の扱いについて触れた意と思います。
まず目次を見てみます、どこにも!DOCTYPE宣言文の項目が有りません。
なら、索引の方に載って入るか。・・・載っていません。(苦笑)
ぼけ〜とページをめくっていると15pと31pにようやく見つけることができました。(31pの方は、正確な書き方ですが、サンプルソースの上にちょこんとついているだけで説明は有りません。)
説明は15pに、サンプルソースの説明として、たった1行1.HTMLのバージョンを記述するには、<!-- DOCTYPE>タグを使用します。
と間違った記述が有るだけです。
ついでにサンプルソースの方も<!-- DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" -->
と間違っています。
良くこんな物を見てHTML文書を作成していたものだよなとおもいますね。(ふぅ)
まず間違いは、タグではなく宣言文であると言うことと、次のような書式で書かなければいけないと言うこと、HTMLのバージョンを記述する
ための書式ではないと言うことの3点です。
こんな短い文章の中で3箇所も間違いを犯すことができるなんて、すばらしいですね。
ちなみに!DOCTYPE宣言文と言うのは、この先の文書がどのような書式(ドキュメントタイプ)で書かれているかを宣言しています。書式はHTMLに限ったことでは有りませんのでHTMLのバージョンを記述する
なんて間違いもいいとこですね。
文書の書式を宣言しているものなわけですから、この宣言文が無いものはどのような書式で書かれたものか、認識する手段が無くなってしまいます。
したがって、この宣言文でHTMLで有ることを記載していないファイルはHTML文書とは呼べませんね。(変な記号が付加された単なるテキストファイルですね。)
ちなみにHTML要素のタグは、タグが囲まれた中がHTMLで有ることを示しているだけであって、ファイルがHTML文書で有ることを宣言しているわけでは有りません。
ファイルの書式宣言は!DOCTYPE宣言文でしか行えません。
ただ、NNやIEなどが、この宣言文を利用していないことから変な誤解が生まれたように思えます。
利用すれば独自拡張タグ要素による混乱も少しは減ると思うのになぁ。
2002.04.30 [・・・独り言・・・] [目次]
今回、Web Site の中身を見なおして感じた事は、「間違った常識に振り回されていたなぁ。」と言うことです。
例とたとえると、tableタグを使ってレイアウトを行うような事です。
HTML文書を作成するに当たって一番大事な事である、文書内部の構造と言うものをまったく無視してデザインしていたことを痛感させられました。
まぁ巷に出まわっている解説書の殆どがその事に触れられていないし、HTMLを誤解したままで理解した(と思っている)人が書いたものが多いのでしかたないことかもしれませんね。
どのような物がそれに該当するかは、Bakera World 2000の「のけぞる本」を見てみて下さい。
ついでに、基本に忠実な書き方をして、見栄も良くしようとするとStyle Seetに関する説明は避けて通れないわけですから、その辺にも原因があるのかもしれませんね。
なぜこのようなことを書くかといいますと、もしブラウザの標準仕様が変わってしまった場合の事を考えてみてください。その場合でも文書の構造がしっかりしたHTMLであれば伝えたい内容は伝わるはずです。
しかし、いいかげんなHTMLであれば何を伝えたいかが解らなくなる可能性が出てきたしまいます。
個人的にはこのような事を避けたいので、基本に基づいた書き方に改めて行きたいと思っています。
(こんな事を言いながら、このWeb Siteにも基本を無視した個所がありますが、顔文字と同じ遊びだと思って勘弁して下さい。)
しかし、手直しもどこから手を付けて行けば良いのだろう・・・
そういえば、半年ぐらい前にMSNをHTML 4.0に完全対応したので・・・と言うようなアナウンスがあったような気がしますが、実際はMSNの日本語ページはむちゃくちゃ構文違反をおこなっていますね。
ありゃHTML4.0じゃなくて、IE用HTMLだわ。
2002.04.28 [・・・独り言・・・] [目次]
HTML文書の記述方法を調べていて、「HTMLは見栄を記述できる」などと言うとんでもない思い違いをしていた事に気が付きました。
HTMLで見栄は記述できません、HTMLで記述できるのは文章の構造です。
(ここは見出し、ここは強調、と言うような文章の構造を記述するために考えられたものなわけですね。)
反対に、文章の構造を記述すると言う事に基づいて記述しておけば、どのようなブラウザで見ても自分の伝えたい事は伝わると言うことですね。(見栄は変わるけど、それは重要では無いと思います)
ちなみに、このWeb Siteは、現在手直し作業中のため、まだまともなHTMLの記述で書かれておりません。
「文章の構造を記述」
と書いてあります文章の構造は元々書かれているものであり、「HTMLは文書の構造を明示するための物」
と言う指摘を受けました。
たしかにその通りですね。