ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

HTML「だけ」投げつければ画像も表示できる世の中になりました(少し昔から)

はい。HTMLファイル「だけ」で画像も表示できます。

当たり前ですって?

それオフラインでも同じこと言えんの?

はい。いえます。ただしIEは9以降のお話です。

種明かし

HTML5で策定された仕様のひとつにData URL Schemeというものがあります。これをつかうとHTMLファイル裸一貫でオフラインであろうと画像まで表示できるようになります。「HTMLファイルになんとかして画像埋め込んじゃえばいいことあるんじゃね?」というわけです。

では仕様を見てみましょうか

幸いそんなに難しいものではありません。ざっくりいうとこんな感じです。、

data:(MIMEタイプ);base64,(BASE64エンコードした画像のバイナリデータ)

これをimg要素のsrc属性やスタイルシートのurlに設定しておけばブラウザーがデコードして、画像を表示してくれます。

対応状況ってどうなの?

世は2014年、IE6がもうすぐ(名目上は)この世から消え去る年です。FirefoxChromeはもちろん対応していますが、IEは8から対応しています。意外と悪くないですね。ただしIE8は32KBまで。ちょっとしたアイコン以外にはほとんど使えないといっていいでしょう。ですがご安心ください。IE9以降は4GBまで対応しています。さきほどシェアを確認しましたが、IEの国内シェアは11>10>8>9の順になっていて、IE8はブラウザー全体で1割程度。しかもXPの終了とともにさらに減ることが予想されます*1。仮にIE8であってもアイコン程度には問題なく使えますし、大きな画像であってもほとんどの環境ではうまく表示してくれます。スタイルシートスクリプト圧縮・結合してやるように、こまごましたリクエストを減らしたいときに使ってみる価値はあると思います。

Source: StatCounter Global Stats - Combine Chrome (all versions) & Firefox (5+) Market Share

StatCounter Global Stats - Browser, OS, Search Engine including Mobile Market Share

*1:IE9から新しいバージョンが出るとすぐにシェアが落ち込んでいるところを見ると、IEも新陳代謝がよくなったようです。いい流れだと思います。