• ベストアンサー

HTMLソースの中で、画像を表示する場合、サイズ、高さにPXをつけない

HTMLソースの中で、画像を表示する場合、サイズ、高さにPXをつけないのはなぜでしょうか。 たとえば、<img src="画像名" width="300" height="200" alt="xxx">と記述します。 なぜ、"300px" "200px" としないのでしょうか。pxがつくと画像が表示されないからということではなく、そもそもpxを省略している理由ってあるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • torayoshi
  • ベストアンサー率62% (910/1449)
回答No.2

#1です。 単位指定(単位識別子)はHTMLとCSSとでは厳密には違ってきます。 質問者さんは理解されてるようなので、その解釈で良いと思いますよ。 (↓既に学習済みなら読み飛ばしてください) CSS2の仕様書を見てみましょう。 「CSSによる長さの値には必ず単位識別子を付けなければならない」 と明記されています。 しかし実際にはIEやFirefoxなど単位識別子を付けなくても指定値通り表示しますね。 これはブラウザが持つ冗長性によるものだと考えられます。

usausa7
質問者

お礼

コメントくださってありがとうございます。 >「CSSによる長さの値には必ず単位識別子を付けなければならない」 そういう決まりがあったんですね。たしかに、CSSではpxなどとつけないで数値のみにすると、反映されないです。 HTMLではどちらでも(書いても書かなくても)、おっしゃる冗長性?とかで表示上は問題ないのですね。 DOCTYPEの種類によって、ゆるいもの、きびしいもの、あるいは互換モードや標準モードとありますが、このあたりで変化があるかと思いましたが、DOCTYPEは関係ありませんでした。 XHTMLではどうかわかりませんが、とりあえずHTML上のこの件についてはやっとスッキリしました。ブラウザ側がまだまだあいまいな状態ですので、厳密に結論を出せない部分も多いかと思います。 細かい疑問にも関わらず、教えていただきましてありがとうございました。

その他の回答 (1)

  • torayoshi
  • ベストアンサー率62% (910/1449)
回答No.1

省略するというか、そもそも仕様書には「属性値:整数(pixels)及びパーセンテージ(%)」とあります。 つまり「整数(数値)のみでpx指定とする」ってことです。

usausa7
質問者

お礼

ありがとうございます。いつも、「そういうもの」と思って書いていたのですが、CSSでは、widthはpx指定の場合「width:200px;」とpxを書くので「あれ?」と思いました。 単純に、cssのときは指定があれば200pxや200%と書いて、 htmlソース上では、width:200 と書けば、pxのことと受け止めてもらえるということですね。 違っていたらまた教えてください。

関連するQ&A