<img>要素等の width/height 属性値となるピクセル数に単位を付けない理由

  • トゥィッターで言及(トゥィート)
  • アメーバで共有
  • はてなブックマークに登録
  • フェイスブックで共有
  • タンブラーで共有
  • グーグルプラスで共有

以前、

と言う質問を受けました。


CSS が HTML より後発である事を知らない質問者

先ず、この質問をした方は、CSSHTML よりずっと後発である事をご存じないのでしょう。

確かに、今日では CSSHTML 同様空気や水のように欠かせないものとなっております。

ですが、CSS は様々な理由から後になって考案されたものなのです。


CSS は何故産まれたか?


<font>要素の弊害

今でこそ見掛ける事は少なくなりましたが(※ 1)、かつては<font>要素など、HTML に於いて表示方法を特定するタグが多用されておりました。

一見便利そうですが、<font>要素は音声出力や CUI 環境などには対応しておらず(※ 2)、従ってこれらの環境では特別なテキストである事が分からなくなってしまいます。


テーブルレイアウトの弊害

また、二次元的なレイアウトを実現するため、本来はデータを二次元的に展開するためにある筈の<table>要素でレイアウトを行う事も多用されておりました。

この方法は、音声出力などは勿論ですが、幅が狭いディスプレイ、今で言えばスマートフォン(※ 3)などで確実に閲覧に支障を来すものでした。


解決策としての理念の再認識・代替技術としての CSS

上記以外にも、HTML で表示方法を指定する方法には様々な問題が指摘されたものです。

こう言った問題を改善するため、HTML などの規格を策定している標準化団体・W3C では

  • HTML では表示方法を原則として想定しない
  • 表示方法は HTML とは別の技術、すなわちスタイルシート(※ 4)で実現する

と言う基本姿勢に立返り、HTML から表示に関する要素・属性を可能なかぎり取払いました。

そして、表示に関する代替技術、すなわちウェブで利用されるスタイルシート言語として考案されたのが CSS なのです。


件の質問の回答

さて、件の質問の回答です。

  • <img>要素が考案された頃はまだ CSS がなく、width 属性height 属性の値としては

    • ピクセル数
    • クライアント領域に対する比率

    しか想定出来なかったため、

    • 後者には % を単位として与え、
    • 前者については単位を不要とした。

と言う事になるでしょう。


感想

それにしても、歴史を学ぼうとしない人間って何て多いものでしょうか

理工学に於いても、技術を追うばかりで、その技術の背景にある歴史を学ばない人間は余りにも多いものです。

確かに、歴史など学んでも直接には役には立たないと思われるでしょう。

でも、知識や教養は思わぬところで意味を成すものです。

今回の件でも、

  • CSS は HTML よりもずっとあとに考案されたものである

事さえ知っていれば、このような疑問は起こる前に自己解決していたでしょうにねえ。


歴史と言うのは、学校などで押し込まれる日本史や世界史だけではないのです。

旧くから続いているあらゆるものに歴史と言うものがあるのです。

そして、現在の技術には、必ず多かれ少なかれ歴史の影響があるのです。


脚注

  • 1. ただ、今でも細々ではあるものの、しぶとく使われてい入るようです。

  • 2. こんな書き方をすると、それなら音声環境などに対応させればいいと言い出すかも知れませんが、様々な閲覧形態がある以上、全てに対応させる事はほぼ不可能でしょう。
  • 3. 但し、テーブルレイアウトが問題視されていた頃はまだスマートフォンと呼べるような端末は殆どありませんでした。
  • 4. しばしばスタイルシートと CSS は同一視されますが、本来スタイルシートと言うのは、

    • コンピュータプログラムの出力フォーマット或いは出力フォーマットに関連する技術一般

    を指すものであり、CSS は

    • ウェブブラウザなどでの出力フォーマットを指定するスタイルシートの一種

    と言うのが正しい考えです。

関連記事
スポンサーサイト