この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2008年3月)

2008年3月30日

Bug 6069 [text-decoration] 下線等の有無を変更すると再描画に時間がかかる
初回投稿日時: 2008年03月30日20時09分54秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

下線等の有無が変わる度にreflowを起こさせて下線等のためのoverflow領域を再計算していたため、パフォーマンスがすごく落ちていた、というバグです。

reflowを起こすとどうしてもパフォーマンスの問題が発生するため、下線や上線をoverflow領域には描画しないようにするしかありませんでした。そこで、フォントの高さよりも外側に下線や上線が描画されるケースではframeの高さ自体を拡張してしまうように仕様を変更しました。このため、例えばMS Pゴシック等では下線の描画領域を確保するため、font-size: 16px;としてあっても、実際には17pxの高さが確保されます。このため、line-height:1em;等と指定して、ものすごくタイトな(CSSにとってはタイトすぎる)レイアウトを行っているサイトではBeta5と次のRC1とではレイアウト結果が変化する可能性があります。

line-height:normal;(デフォルト)の場合はこの変更の影響は全くないのでレイアウト結果が変わることは無いはずです。

関連するかもしれないエントリ

bug 6069を含むエントリ