Bug-org 183646 ::-moz-selection does not work in form controls (input[type=text], input[type=password], textarea)
初回投稿日時: 2010-04-07 12:59:10
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
input要素やtextarea要素では::-moz-selectionが適用されないというバグです。
Geckoはこれらの要素ではnative anonymousな要素を生成します。具体的には以下のようなDOMツリーが形成されます。
<input>(もしくは<textarea>)
+- <div>
+- text node
+- <br>
+- ...
これをもとにフレームを作ると
nsTextControlFrame
+- nsBlockFrame
+- nsTextFrame
+- nsBRFrame
+- ...
となっています。
::-moz-selectionは特殊で、nsTextFrameが選択されたテキストを描画する段階で直接、そのフレームのノードの::-moz-selection疑似要素のスタイルを参照しにいきます。このため、常にnative anonymousなdiv要素のスタイルを参照しに行って、スタイルが取得できていない、というのがその原因でした。もちろん、実際にはnsTextControlFrameのスタイルを参照しなくてはいけません。