MizillaとSafariのCSSサポートを組み合わせればCSSだけでboxのドロップシャドウができる

と思ったんだけど、組み合わさってないんだからできないわけで。アイディアだけ。


Mozillaではborder-colorに複数色を設定すれば、例えばグラデーションのかかったborderを作ることができます。(てっきりCSS3公式なのかと思ったら、CSS3背景、ボーダーモジュール(邦訳)を読むとどうも違うような気がする。)
他方、CSS3のRGBAColorを使えば半透明色を指定できます。
両者を組み合わせれば、徐々に薄くなるborderが作れるってわけです。
border-colors(仮)はMozillaのみ、RGBAには(たぶん)WebKitだけが対応している状況なので、両者を組み合わせるのは少なくとも現時点では残念ながら不可。(今調べたら-moz-rgbaなんてのがあるみたいだけど動作しない。どうやらFirefox3で導入されるみたい。)
というわけで、いつか動くかもしれないサンプルコード。

#box {
  border: 11px solid rgb(255,0,0);
  border-color:
    rgba(0,0,0, 0)
    rgba(0,0,0, 0.1)
    rgba(0,0,0, 0.2)
    rgba(0,0,0, 0.3)
    rgba(0,0,0, 0.4)
    rgba(0,0,0, 0.5)
    rgba(0,0,0, 0.6)
    rgba(0,0,0, 0.7)
    rgba(0,0,0, 0.8)
    rgba(0,0,0, 0.9)
    rgba(0,0,0, 1)
    rgba(255,0,0, 1.0);
}

1pxの赤い枠の外側についた黒い影が、徐々に薄くなる。はず。もしかしたら改行しちゃ駄目かも。
ちなみにFirefoxは現時点でも-moz-border-bottom-colorsを使った上で背景色を決め打ちすれば疑似ドロップシャドウ(実際はただのグラデーション)ができます。


このCSSドロップシャドウとborder-radiusを組み合わせれば、CSSのみでWidgetっぽい何かができる。はず。


…とここまで書いてから、CSS3にはbox-shadowなんてのがあるらしいということを発見。オフセットもぼかし半径もサポートするプロパティ。今のところWebKitのnightlyを含めどのブラウザでも実装されてないようですが(http://www.geocities.com/seanmhall2003/css3/borders.htmlにサンプル)、これさえサポートされれば万事OKだったりする。
なんだ、この記事いらないじゃん。