1. Home
  2. Archive
  3. マークアップに関する3つの質問

マークアップに関する3つの質問

最近僕がコーディング時に悩む3つの問題を投げかけてみたいと思います。このブログのアクセス数でどれだけ反応があるかが怖いんですが(最悪0件とかありえる)、気長に待ってみることにします。

質問

  • idとclassの使い分け方
  • ブログでサイトタイトルをマークアップするときの要素
  • img要素のwidth属性とheight属性を指定するか

以下僕自身の回答を書いてみます。もちろん僕の答えが正しいかどうかはわかりません。

idとclassの使い分け方

以前はページにひとつだけしかないものはid、複数でてくるものはclassを指定したんですが、最近その考えはやめました。

仕様書を見て自分なりに解釈したんですが、idは要素に一意な名前を付ける、classは要素を分類するための属性であるということだと思います。

これを考えると、ページに1つしかでてこないからidという考えは、間違っている気がします。なので最近は固有名詞はid、一般名詞はclassという感じの分け方です。多少ニュアンスが違うこともありますが、大まかに言うとそんな感じです。例えば「header」などは一般名詞なのでclassを指定します。

ブログでサイトタイトルをマークアップするときの要素

最近よく見かけるのが、サイトタイトルはトップページのみh1要素で、パーマリンクページのサイトタイトルはp要素やdiv要素、記事タイトルはh1要素でマークアップしているというサイトです。

僕はパーマリンクページもh1要素派です。見出しが効いている範囲を考えると、サイトタイトルはパーマリンクページであっても、ページ全体に効いてる見出しだと思うからです。

パーマリンクページでは記事タイトルがページタイトルにあたるのでh1要素というのもわかるんですが、必ずしもh1要素=ページタイトルになる必要はないと思うんですよね。サイトタイトルが見出しじゃないというのも違和感があります。是非みなさんの意見を聞きたいところです。

img要素のwidth属性とheight属性を指定するか

最近は基本的にimg要素にwidth属性とheight属性は指定しません。以前この問題についてのエントリーを書いて、はてブ等で若干disられたんですが意見は変わってません。

指定しないとレンダリング速度が遅くなるのかどうかということは未だわからないので詳しく知っている方がいたら教えていただきたいです。

トラックバックURL

http://webtech-walker.com/archive/2007/11/05202042.html/trackback

※トラックバックを受け付けてから表示するまでにしばらく時間がかかる場合があります。

トラックバック一覧

  1. CSS HappyLife 2007年11月11日 23時30分

    リニュしました。とRe:ブログでサイトタイトルをマークアップ…

    CSS HappyLifeが Ver 5 になりました。 IE6が対象ブラウザからかなりはずれ気味という素晴らしさ。 IE7辺りが一番意図した通りの表示だと思います。次 (more…)

  2. 裏Ω 2007年11月12日 22時20分

    [HTML][思想]Re:マークアップに関する3つの質問…

    http://webtech-walker.com/archive/2007/11/05202042.htmlへの反応。 idとclass idとclassについては (more…)

  3. eclucifer blog 2007年11月14日 02時05分

    Re: マークアップに関する3つの質問…

    Webtech Walker の 『 マークアップに関する3つの質問 』 への回答です。 id と class 属性の使い分けやサイト名のマークアップに関して以前思い悩 (more…)

  4. build up pc 2007年11月16日 01時10分

    Re:マークアップに関する3つの質問…

    Webtech Walker さんの記事 【マークアップに関する3つの質問】 で (more…)

  5. BlurBlue-Note 2007年11月18日 13時07分

    回答:「マークアップに関する3つの質問」…

    マークアップに関する3つの質問というエントリーがあったので、回答してみます。 実はエントリーされた直後に見つけてたんですけど先延ばしにしてしまった…。 マークアップに関 (more…)

  6. Kuruman Memo 2007年11月20日 22時25分

    マークアップに関する3つの質問に回答した…

    マークアップに関する3つの質問に回答した。 (more…)

  7. メモランダム 2007年11月21日 02時57分

    マークアップに関する3つの質問に答える…

    マークアップに関する3つの質問 - Webtech Walker idとcla… (more…)

  8. にっきちょう 2007年12月9日 11時40分

    [にっき]マークアップに関する3つの質問…

    マークアップに関する3つの質問 - Webtech Walker idとclassの使い分け方 ページの大枠の構成に関するもの、例えばheaderとかnaviとかma (more…)

  9. SimpleIsm 2007年12月16日 23時29分

    Re: マークアップに関する3つの質問…

    マークアップに関する3つの質問 - Webtech Walker 見つけたとき… (more…)

コメント一覧

  1. etc 2007年11月7日 13時53分

    id/classについて私は、
    idは何(んな情報・構造)だけを含んでいるか、
    classは何(んな概念)に含まれるか、
    を示す物だと考えています。
    特にidはanchor先になるので、
    内容に直接結びついたものがいいのではないでしょうか。
    ですので、headerがheaderという内容だけを含んでいるタグであれば、一般名詞であろうとidで指定しています。
    具体的には
    idで指定している:
    #header #section1 #whatsnew
    classで指定している:
    . thumbnail .deprecated .caution .error

    #header #navi ul {}
    #footer address {}
    という感じであまりclassは使わなかったり。

    img の w/h:
    伸び縮みしていいなら指定しない。
    それ以外はw/h分かるなら指定。
    class="thumbnail"とかでは絶対指定すべき、意味的からも実用面からも。

    と言ってみたものの、生成プログラム側の都合とかIEのCSS対応や飾り付けの関係でも変わってきたりするので、厳密にこのポリシーに則っているわけではないです。
    できれば、こうありたいな、という感じで適当に。

  2. hoka(管理人) 2007年11月7日 15時35分

    >etcさん

    コメントありがとうございます。大変参考になりした。
    とりあえず反応0件をまぬがれたのでほっとしています。

    id/classのところでは「内容だけを含んでいるタグ」という考え方は僕にとって新しい考え方で、参考になります。
    idがanchor先になることは考えているので、内容を示す名前をつけるように心がけています。

    imgのwidth、heightに関して、状況によって使い分けるというのは重要なことだと思いました。この考え方は取り入れていきたいです。

    一貫したポリシーを持つことも大事だし、柔軟が対応必要な場合もありますよね。
    その辺りの兼ね合いが難しいところではあると思います。

  3. iwaim 2007年11月18日 22時19分

    本来、idとclassは使い分けるものではありません。idを振るべきところにidを振り、classを指定するべきところにclassを指定するものです。
    まあ、CSS前提に考えてしまうと使い分けという思考に陥りがちですけど。

  4. hoka(管理人) 2007年11月19日 02時02分

    >iwaimさん

    コメントありがとうございます。
    たしかにおっしゃるとおりですね。とても参考になります。

    idとclassは全くの別物だという考えを持たないといけないですね。

    理想はCSSのことを考えずにマークアップして、その過程で指定したid/classを頼りにCSSを指定するというフローだと思います。CSS3レベルのセレクタが使えるようになるとそういうマークアップも可能になるのかなと思ったりもします。

  5. novo 2007年11月19日 02時18分

    はじめまして、CSS HappyLifeさん経由でこちらに来ました。

    ウェブページというのはページとして完結しているもので、ウェブサイトは完結したウェブページの集合体であるという考え方を僕は持っています。

    例えば、気になった情報を検索して、出てきた1ページに対してブックマークするということは往々にしてあると思いますが、それは、その1ページだけで完結しているからではないでしょうか?

    サイトを制作する際に、膨大なコンテンツを個々のウェブページに振り分ける場合、1ページ完結形式するのが一般的ですよね?

    これらを踏まえて質問に答えると、

    1.idとclassの使い分け方
    ページ内の固有の要素にはidを、それ以外にはclass使っています。
    もし、僕がW3C側の人間で、「HeaderやFooterなどにidは不適当」という考えを持っているなら、ウェブサイトの内で共通する要素に、id,class以外の別の指定方法を草案に盛り込むと思います。
    例えば、idをsiteidとpageidに分けるとか。

    2.ブログでサイトタイトルをマークアップするときの要素
    サイトタイトルにh1、ページタイトルにh2を使っています。
    ページ内のh1からh2,h3,h4と順に並べたときに流れができているページが理想かと思うんです。
    例えば、h1=ラーメン百科(サイトタイトル)、h2=ラーメンの種類(ページタイトル)、h3=豚骨ラーメン(見出し)、h4=久留米の味付け(小見出し)、h4=博多の味付け(小見出し)のような感じで。
    もし、僕がW3C側の人間で、「サイトタイトルにh1は不適当」と考えているなら、サイトタイトルやページタイトル用に新たなタグを草案に盛り込むと思います。

    3.img要素のwidth属性とheight属性を指定するか
    一応指定しています。CSSでレイアウトタイプ(ソリッド,リキッド,エラスティック)やレイアウトサイズなどを考えると、不必要(というか邪魔)だとも思えますが、HTMLファイルはそれだけで完成しているファイルであるべきだと思っているので、CSSでの設定を抜きにして、領域確保のため指定しています。
    でも、inputタグでtype="image"の場合、widthとheightはMozilla用の属性なので指定不可なんですよね。imgタグとobjectタグには必要な属性なのになんででしょう?

    なんか長々とすいません。

  6. hoka(管理人) 2007年11月19日 11時52分

    >novoさん

    はじめまして。コメントありがとうございました。

    ウェブページが1ページで完結しているという考えは、まさに僕の考えと同じです。
    「サイトタイトルの要素」のところでは、そういうこと言いたかったんですよ!うまく表現できなかったんですが・・・

    >でも、inputタグでtype="image"の場合、widthとheightはMozilla用の属性なので指定不可なんですよね。imgタグとobjectタグには必要な属性なのになんででしょう?

    この件に関しては、「type="image"」をほとんど使わないので気にしたことがありませんでしたが、言われてみれば謎ですね。
    ちょっと調べてみましたが、さっぱりでした。もしわかる方がいたら教えていただきたいです。

  7. ヒロ 2007年12月3日 00時16分

    初めまして。流れてきました。
    1. idとclassの使い分け方
    その要素に対して固有の名前を与えたいものについてはid、単なる「メニュー」とかいう普通名詞で済む部分はclassですね。idはRDF/XMLに変換したりする場合にURIとして使えますので、その辺を強く意識しています。
    また逆に、RDF/XML(RSS1.0その他)からXHTMLに変換する際はこの考え方が自然になると思います。

    2. ブログでサイトタイトルをマークアップするときの要素
    私はブログを使っていませんが経験その他から。
    私なら単純にh1,h2,h3の順になるようにしますね。
    ただそもそもサイトタイトル→ページタイトルにするのは嫌いなので、私のサイト自体はいきなりページタイトルで始め、最後にアドレス要素でサイト名、作者名(+メールへのリンク)を表記しています。

    3.img要素のwidth属性とheight属性を指定するか
    必ず指定しています。
    静止画像である写真や絵画は、IT化以前の歴史上、サイズを表記してきました。美術館に行くとわかりますが、絵の説明は
    「題名、作者名、発表年、画材、所有者(収蔵美術館)名、『サイズ』」になっています。もちろんここで表記するサイズはピクセルではなくキャンバスの号数かセンチ単位ですが。
    このことから考えると、現実世界において画像の大きさは重要なメタデータであると私は考えています。以上の理由から、画像のメタデータの記述としてwidth,height属性を指定することにしています。
    まあlintも動機にないわけではありませんけど。

  8. hoka(管理人) 2007年12月3日 01時06分

    >ヒロさん

    初めまして。

    とても参考になる意見をありがとうございます。

    "画像の大きさは重要なメタデータである"という意見、非常に納得です。確かにその考え方だとHTMLでwidth,heightを指定するべきですね。

    3つの質問それぞれに関して、本当に色々な意見が聞けたので、それらを参考にしてもう一度自分なりの考えを修正したいと思っています。

    皆さん、本当に貴重なご意見ありがとうございました。
    引き続き皆さんの意見をお待ちしてます。

コメントフォーム

※HTMLタグは使用できません。