Jul 29, 2007

一部の疑似クラスと疑似要素に対応したよ

テキストシャドウを地道に改良し続けている。

  • 一部の疑似要素と疑似クラスに対応
  • インラインで折り返された文字列に対する影の描画を改善
  • 影の表示をSafariの表示に近くなるように調整
  • Firefox 3でも動くようにした

Geckoもtext-shadowに対応してくれ!というバグにこれを貼り付けて煽ってみようかと思ったら、貼られていたテストケースで::first-line疑似要素が使われてて表示できなくてこりゃまずいと思ったんで、元々対応する気の無かった疑似要素と疑似クラスにまで頑張って対応してみた。疑似クラスについてはGeckoすら対応してない物にまで対応してたりして。

考えてみたら、この拡張機能を作る事ができたのは色々な巡り合わせがあってのことなんだなあ。

  • XUL/MigemoにSafari風ハイライトの機能を取り込むに当たってDeaR氏が書かれたuserChrome.js用スクリプトを見て、position:relativeを使えば元のレンダリング結果を壊さずにインライン要素のz-indexをいじれる事を知った(それまで気付いてなかった)。
  • よりSafariに近いハイライト(ヒットした箇所がボヨヨンと動く)を実現したくて、しかしインライン要素のボックスの情報を元に単に新しいボックスを作って上に重ねただけだと単語が途中で改行されていた時に表示がおかしくなるという問題に頭を悩ませ、本家本元のSafariはどうなってるのかなと思って試してみたら同じ問題が起こって「なんだ頑張らなくてもいいんじゃん」と脱力した。でもこの時、実現の方法を模索して色々なやり方を思考実験はしていた。
  • 須藤さんがrcairoに加えた独自拡張(疑似ぼかし機能)のアルゴリズムを目の前で見せてくれたことがあった。
  • selector.jsという、MITライセンスで気軽に使える素敵なライブラリを見つける事ができた。
  • Firefox 3にtext-shadowが入らず、Firefox 4が出る(のか?)までの間ずっとそっち方面のサポートは進まないことが、ほぼ確定となり、このままじゃ僕が私生活も仕事もズッポシ依存しきっているFirefoxが他のモダンブラウザ(IE7、Opera、Safari)から大きく引き離されちまうじゃあないか! という恐怖感が増した。

技術的な蓄積と強い動機が両方揃うと、ここまでできてしまうのか、と我ながら驚いた。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能