ホームページのデザイン調整に使う手法として
spacer.gifとdivのspacerなんかがあったりする。
僕は使ったことないけれども、たまにコード上で見かけるので
そもそもこれって使っていいものなのか?っていうのをまとめてみた。
spacer.gif
spacer.gifとは・・
1px × 1pxの透過gifのことで、主にWebデザインの微調整などに使われていた。
imgタグのwidth・height属性を使って画像を引き伸ばすことで、文字をズラしたりだとか
テーブル位置をズラしたりだとか…。
使い方としてはこんな感じ↓
<img alt="" src="spacer.gif" width="50" height="1" border="0" />
透過しているから背景が透明で、パッと見てもspacer.gifの存在はわからない。
よくもまぁこんな事を思いついたなと。
昔のシステムとかホームページを見たりすると使っている所がちらほら。
しかし、あくまでspacer.gifは”裏ワザ”的なものなので、あまりベーシックな方法ではない。
今ではCSSをしっかり使えば必要はないし、同じようなコードの繰り返しは見栄えもあまり良くない。
詳しいコメントをいただきました。spacer.gifは裏技というより基本テクニックとして使われていたようですね。仕事として開発を始めた頃はCSSしか使わなかったのでspacer.gifの背景を理解していませんでした。
ということで現れたのがdivのspacer。
div.spacer
<div class="spacer"><!-- spacer --></div>
.spacer { clear: both; height: 50px; font-size: 1px; } /*font-sizeを0にしたり、widthを指定したりする方法もある*/
divにクラス指定して高さとかをCSS側で指定する。
クラス名をspacer10とかspacer5とかにして汎用的にしたり…。
正に現代版spacer。
これは意外と使えるんじゃないか?って思ったりするけれども、
海外のエンジニアQAサイト、stackoverflowでこんなのを見つけた。
Is using<div>spacers a bad practice?
「ぶっちゃっけdivのspacerって使っていいんすか?」(超意訳)
っていう質問に対して
「paddingとかmargin使ってね!」
「意味のないマークアップは使わないでね!」
って言われてる。確かに!
マークアップは要素をタグで囲うことによって構造の定義をしている。
それを考えると空のdivなんかはマークアップの考えからは外れてるから
ダメなのは当たり前だったね…。
スペーサーのまとめ
- spacer.gifはコードの可読性や構造を考える不適切
- div.spacerはマークアップ言語の概念から考えると不適切
- デザインの微調整にはmarginやpaddingなどを使うべき
コメント
CSSが主流になる前はspacer.gifでページレイアウト用のテーブルの幅、高さをとるのは「絶対」でした。こんなこと思いついたな?というレベルではなく、mdnとかでも普通に基本テクニックとして紹介されてましたよ。なにしろCSSがfont-sizeくらいしか使い物にならない時代だったので、そのままだと内容物の幅に応じてふにゃふにゃ幅が変るテーブルセルをどうにか固定するのに不可欠だったんです。
コメントありがとうございます。
古いシステムの改修を行ったときに初めて見たので、記事にしてみました。
コメントを頂いた後に調べてみましたが、spacerという要素もあったようですね。テーブルレイアウトやspacerなど、歴史を感じます。。
勉強になりました!ありがとうございます。