私の経験から言って、タイトルに「ホームページ」という言葉を含む本は、まず駄目です。そもそも、タイトルに「ホームページ」などと入れて平気でいるという時点で、その著者及び編集者の感覚が分かろうと言うものです。
この本もしっかりと期待に応えてくれます。
まずはタイトルにもある「ホームページ」です。本来、「ホームページ」とは、ブラウザ起動時に最初に表示されるリソースのことを指します。また、一連のリソース群の起点、目次などに相当するリソースという意味に用いられることもあります。鳩丸では後者を「トップページ」と呼んで区別していますが、いずれにしても、「ホームページ」という語のもつ意味として広く認められているのはこの二つだけです。このあたりの議論については「ホームページのウソ」などを参照してください。
さてこの本の言う「ホームページ」ですが、これは「ブラウザ起動時に表示されるリソース」という意味ではないようです。そこで疑問が生じます。すなわち、この本の言う「ホームページ」とは何か、ということです。
当然、「はじめてのホームページ」とうたっているからにはホームページの解説があるものと思うでしょう。確かにあります。WWW ブラウザのウィンドウのスクリーンショットがあって、キャプションがついています。
「これがホームページ。例:秀和システムのホームページ」
説明はこれだけです。これを読んで、「ホームページって何ですか?」と質問したくなったのは私だけでしょうか。きちんと説明して欲しいのですが。たとえばこんなふうに。
「ホームページ」とは本来ブラウザ起動時に表示されるページのことを言いますが、WWW 上にあるページを総称して「ホームページ」と呼ぶことがあります。本書では「ホームページ」という語を後者の意味で使っています。
このくらいの説明はないと、初心者(って誰?)がとんでもない勘違いをしそうです。出来れば、「ホームページ」を WWW 上のページの総称という意味で用いるのは誤用であって、そういう用法をすると意味を誤解されたり恥をかいたりする可能性がある、ということをしっかりと教えて欲しいものです。ひょっとすると、著者自身も知らないのかも知れませんが。
……いちおう、この本では「ホームページ」という語を「Webページの総称」という程度の意味で使っているようなのですが、別の所では「Webページ(ホームページ)」などという表現も使っていたりして、何を考えているのかさっぱり分かりません。
「HTML というプログラミング言語」って……どこがプログラミング言語? マークアップ言語だと言うことには異存ありませんが。
なんと言ってもこの本が凄いのは、「プレーンテキストだけでは寂しい」とか「メリハリをつけた方が良い」とか言って B や I や BIG や SMALL を紹介していることです。何を考えているのかさっぱり分かりません。
「論理マークアップ」ということを理解しているなら、何のためにマークアップするのか、何をしたいときにどういうマークアップをするのか、ということの重要性は分かるでしょう。ただ漠然と「見た目が寂しいからメリハリをつけよう」などと言ってマークアップを行うというのでは、読者に「論理マークアップ」の何たるかが全く伝わりません。というか著者自身にも分かっていない可能性が大ですが。
B や I や BIG や SMALL や FONT は紹介されているのに、EM や STRONG を紹介していません。当然、CODE や CITE なども紹介していません。論理マークアップの何たるかが分かっていない可能性が実に大です。
ちなみに BLOCKQUOTE も紹介されていません。ちぇっ。
PRE 要素の解説。改行などがそのまま反映されるので整形済みテキストとも呼ばれる、って……逆だ逆! PRE と言うのは Preformatted Text から来ているのです。「整形済みテキストの部分を PRE 要素としてマーク付けする」「整形済みテキストとしてマーク付けされているから改行などをそのまま反映する」のです。
PRE と同じような使われ方をする物に XMP があるって……使われ方が全然違うのですが。XMP は HTML のソースなどを例示するための要素で、その中身は単なる文字データとして解釈されます。つまり、XMP の中ではマークアップは解釈されません。< などもそのまま書けます。
反面、PRE の中ではマークアップが解釈されますから、< を書くと開始タグ開始区切り子とみなされてしまいますし、EM要素で強調したり A要素でアンカーを設定することもできます。
これほど大きくかつ重要な違いがあるのに、それを無視するとは何事でしょうか?
なお、XMP と同じような使われ方をするものに LISTING がありますが、XMP も LISTING も HTML4 で廃止された要素ですので、使うべきではありません。
リスト項目の見出しを設定するのに「LHタグ」が使えると書いてありますが、その根拠は何でしょうか? LH は HTML3.0 で提案だけされていた幻の要素であり、正式に採用されたことは一度たりともありません。また、Microsoft のリファレンスにもありませんし、IE も NN も <LH> タグを無視します。
はっきり言っておきますが、HTML2.0, HTML3.2, HTML2.x, HTML4.0, HTML4.01, XHTML1.0, いずれにも LH などという要素はありません。IE や NN の独自拡張要素でさえありません。LH が使えるなどと言う話をどこで聞いてきたのか、本当に知りたいです。他のいい加減な本に書いてある嘘を鵜呑みにして、その存在を確認も検証もしないで書いたのだとしか思えないのは私だけでしょうか。
この本は、欄外の用語解説も見逃せません。DHTML は Microsoft が JavaScript を拡張したもの……って本気で言ってる? HTML に JavaScript などのスクリプト言語を組み合わせて動的な表現を行う、その手法の総称が Dynamic HTML だと思っていたのですが。いや、そもそも、DHTML に LAYER という物を使うことを提唱し、 またぞろ勝手に要素を追加して顰蹙を買ったのは、Microsoft ではなく Netscape だったはずですが……。
それにしてもこの著者、まさか「DHTML」という言語があると思っているのではないでしょうね?
自分の「ホームページ」にリンクするのが「相対リンク」「相対ジャンプ」で、他人の「ホームページ」にリンクするのを「絶対リンク」、「絶対ジャンプ」と呼ぶのだそうです。
どうも私は勉強不足だったようで、絶対ジャンプなどという言葉は聞いたことがないのですが……。
と書いていたら、びいさんが解説してくださいました。
アセンブラにはジャンプ命令と言うのがあります。 このジャンプ命令には相対ジャンプと絶対ジャンプの二通りのものがあります。 何が絶対で何が相対なのかと言うと、アドレスが絶対アドレス、または相対アドレスだったりします。
……ということで、絶対URI でもってリンクするのは絶対リンクと呼べるのではないかとも思われますが、この本の定義で行くと、絶対 URI でもって自分のサイト内へリンクする場合、それは「相対リンク」「相対ジャンプ」になりそうな気が……。
A要素の name属性で指定する物は「マーカー」と呼ばれるのだそうです。これまた私は勉強不足だったようで、これを「マーカー」と呼ぶなどという話は聞いたことがありません。
もちろん name 属性のついた A 要素も「アンカー」ですし、name 属性で指定された物を「アンカー名」と呼ぶのは問題ないと思います。さらに、任意の要素の id属性で指定した物もひっくるめて部分識別子とかフラグメントID とか呼ぶのですが、「マーカー」と呼ぶのだけは聞いたことがありません。
なお、LI要素などの頭につく印のことを「マーカー」と呼ぶのは間違いありません。たとえば、CSS2 12.6 の表題はズバリ "12.6 Markers and lists" ですが、この "Marker" とは A 要素の name 属性で指定された部分識別子ではなく、LI 要素などの頭につく印のことを指しています。
http://www.ne.jp/asahi/minazuki/bakera/ のように / で終わる URL の場合、自動的に index.html を探しに行くのだそうです。
これは本当に誤解している人がいるのですが、/ で終わる URL へのアクセスは、あくまでディレクトリを要求しているのです。このときのサーバへの要求は、たとえば以下のようになります。
GET /asahi/minazuki/bakera/ HTTP/1.1 Accept: */* Accept-Language: ja,en;q=0.5 Accept-Encoding: gzip, deflate ……
どこにも index.html という要求はありません。この要求でサーバが何を返してくるのかはそれこそ様々で、ディレクトリ一覧を返してくることもありますし、403 Forbidden を返してくる事もありますし、default.htm の内容を返してくることもあります。あくまで、index.html の内容を返してくるようになっているサーバが多いというだけです。
もちろん、ブラウザが勝手に URL の末尾に "index.html" を補完してそのリソースを探しに行く、などということは金輪際ありません。サーバが 302 Found を返してくれば、あるいは探しに行くかも知れませんが……。
BODY 要素に leftmargin, topmargin という属性があると紹介しています。IE の独自拡張属性を紹介することの是非はともかく、凄いのは、ウィンドウの右下はサイズが可変なので、右や下のマージンは指定できないという説明です。
CSS1 や CSS2 には margin-right や margin-bottom がありますし、CSS に対応したブラウザでは BODY の margin-right や margin-bottom もちゃんと機能するように見えるのですが、これは目の錯覚でしょうか。
ちなみに、IE4 以降では rightmargin 属性や bottommargin 属性もしっかり機能するようです。もちろん独自拡張属性であって、HTML ではありませんが。
P の解説。<P> タグを単独で使うこともあるが、HTML3.2以降の規格では <P></P> とすることが推奨されているとは……本気で初耳です。
ちなみに、P 要素が単独で段落の区切りとして使われていたのは HTML1.0 ドラフトの時代の話であり、HTML 2.0 以降では、P 要素は段落を表すブロック要素です。その意味するところは全く異なります。
……っていうか、そもそもどこから「HTML3.2 以降」なんて話が出てきたのでしょうか。全く訳が分かりません。どこかで聞きかじったいい加減なことを、確かめもしないで書いているとしか思えないのは私だけでしょうか。
しかも、「本書では <P></P> を採用しています」とか言いつつ、後ろの方の例文では単独で <P> が使われていたりして……。
はっきり言ってしまいますが、最初から最後まで問題だらけで、むしろ問題点の無いところを探す方が大変なくらいです。ま、「入門者向けだから」などと言い訳をするのかも知れませんが、それにしても酷すぎます。堂々の五つ星を差し上げましょう。