CSS疑似要素は仮想DOMなのでしょうか? WebKit的にはどういう扱いなのでしょうか?

投稿者: Anonymous

CSS疑似要素(例えば::before)を作成すると、Chromeコンソール画面では常に::beforeと表示されます。
また、画面に疑似要素指定内容は表示されますが、テキスト選択も出来ません。

この時、DOM はどうなっているのでしょうか?
疑似要素作成=仮想DOM 作成なのでしょうか?
あるいは、そもそも疑似要素はDOM ではない?
疑似要素ってレンダリングする際、どういう扱いになっているのでしょうか?

解決

WebKit/Blinkの内部的には擬似要素は特殊なElementとして実装されています。しかしながら、通常のDOMツリーとは別の方法でくっついているので、開発者は実装方法を気にする必要はないと思います。

テキスト選択できないのは、Rangeオブジェクトで表現できないからです。

http://trac.webkit.org/browser/trunk/Source/WebCore/dom/PseudoElement.h
https://chromium.googlesource.com/chromium/blink/+/master/Source/core/dom/PseudoElement.h

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *