亜細亜ノ蛾 - Weblog

[SiteSearch Google]

March 05, 2008

(X)HTML の仕様にイライラ(軽い気持ちで見よう)

[ad]

(X)HTML の仕様に関する疑問

何度も書いているように、このブログの記事は、HTML を直接ガシガシ書いています。

そうやって、日常的に HTML を書いていると、だんだんと

「HTML が 第 2 の母国語」

みたいな、錯覚を覚え始めたり。──同じような事を、Web デザイナやプログラマも思うのだろうな、と想像します。

で、そこまで慣れ親しんでくると、ちょっとした細かい点が気になってきます。(X)HTML の仕様の中で、「何で こうなっているの?」と。

──と言っても、そんなに深い話ではなくて……。

日本語で言うところの、「はははははじょうぶだ」や「にわにはにわにわとりがいます」、「ぼくははてなならなんでもすきだ」などの、重複に感じるイライラさ、みたいな感じ。

今回は、XHTML1.0 Strict に話を限定して、「何で こう書くの?」とか「コレは何故ダメなの?」と言った話題を書いてみます。

例によって、仕様書も ろくに見ずに、テキトーに書いているので、間違っていたら済みません!(指摘よろ)

script と img

「それを言うのはお前で100万人目だ!」(by. 絶望先生: 『100万回言われた猫』)──なネタですが……。

こっちは正しいのに:

<img src="hoge.jpg" alt="alt の内容" />
<script type="text/javascript" src="fuga.js"></script>

これはダメ:

<img src="hoge.jpg">alt の内容</img>
<script type="text/javascript" src="fuga.js" />

──というのがイライラ。

まぁ、「空要素タグ」か どうか、ということを把握しておけば間違いはないのですが、なんとなく直感に反する感じ。

dl dt dd

こっちは、自分の認識があっているか、自信がないですが……。

たとえば、こういった定義リストが あったとして:

<dl>
  <dt>定義 1 のタイトル</dt>
  <dd>定義 1 の中身</dd>
  <dt>定義 2 のタイトル</dt>
  <dd>定義 2 の中身</dd>
</dl>

「タイトル」と「中身」は一対一で対応している、と思いますよね。つまり、こんな感じだと:

[dl]
  |
  +--[dt]--[dd]
  +--[dt]--[dd]

──しかし、実際は上のようなツリー構造には なっていません。こうですね:

[dl]
  |
  +--[dt]
  +--[dd]
  +--[dt]
  +--[dd]

要するに、dtdd は「dl 要素の直下にある」というだけの関係です。

なので、こう書いても問題ありません:

<dl>
  <dt>定義 1 のタイトル</dt>
  <dt>定義 2 のタイトル</dt>
  <dd>定義 1 の中身</dd>
  <dd>定義 2 の中身</dd>
</dl>

そのあたりが気持ち悪い自分は、こうやって定義したりします:

<div class="define">
  <dl>
    <dt>定義 1 のタイトル</dt>
    <dd>定義 1 の中身</dd>
  </dl>
  <dl>
    <dt>定義 2 のタイトル</dt>
    <dd>定義 2 の中身</dd>
  </dl>
</div>

または、ulli で書いています:

<ul class="define">
  <li>定義 1 のタイトル
    <ul>
      <li>定義 1 の中身</li>
    </ul>
  </li>
  <li>定義 2 のタイトル
    <ul>
      <li>定義 2 の中身</li>
    </ul>
  </li>
</ul>

うーん、このあたり、ベストプラクティスは あるのでしょうか……。

MT タグ

これも「100 万回」シリーズですが……。こんなコードもイライラ:

<a href="<$MTEntryPermalink$ encode_url="1">">
  <$MTEntryTitle encode_html="1"$>
</a>

──え、どこが? と言う人も多いと思いますが……。

<>"" が、ネストネストしているのが気分悪い。

そもそも、MT タグなんて独自タグなんだから、(X)HTML を真似る必要は無かったと思いますね。

たとえば、こんな書き方もサポートしたらいいのに(それ Plu):

<a href="{MT:EntryPermalink encode_url="1"}">
  {$MT:EntryTitle encode_html="1"$}
</a>

まとめ

──え、もう終わり? という感じですが、書いている内に長くなったので、これくらいに します。

全然、情報を追いかけていないですが、HTML5 や XHTML2.0 では、どうなるんでしょうね? もっと、正しい (X)HTML を誰でも書けるようになると、良いですね。

Google Adsense

ワード

コメント

コメントを投稿

"(X)HTML の仕様にイライラ(軽い気持ちで見よう)" にコメントを投稿することができます(別ウィンドウが開きます)。

トラックバック

このエントリーのトラックバックURL:

"(X)HTML の仕様にイライラ(軽い気持ちで見よう)"へのトラックバックはまだありません。

過去の記事

カテゴリィ一覧
  1. Movable Type
  2. その他
    1. アイデア
  3. ウェブ
    1. Weblog
    2. Webデザイン
    3. ちょっとイイ話
    4. へぇー(トリビア・雑学)
    5. オモロ
      1. オモロテキスト
      2. オモロニュース
      3. オモロ動画
      4. オモロ画像
    6. ニュース
  4. コンピュータ・エレクトロニクス
    1. PC
      1. Firefox
  5. マンガ・アニメ・ゲーム
    1. アニメ
      1. 新世紀エヴァンゲリオン
    2. オタク
    3. ゲーム
    4. マンガ
      1. 週刊少年ジャンプ
        1. DEATH NOTE
        2. HUNTER×HUNTER
        3. SKET DANCE
        4. バクマン。
  6. 本・音楽・映画・TV
    1. TV・芸能
    2. 映画
  7. 食・健康・生活
    1. ファッション
    2. 食べ物