16664


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

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


CC BY-SA 3.0
2015-09-16T00:32:03.330
16663
2015-09-16T00:47:44.363
7886
question
javascript html dom
CSS疑似要素は仮想DOMなのでしょうか？ WebKit的にはどういう扱いなのでしょうか？


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>


CC BY-SA 3.0
2015-09-16T00:47:44.363
16664
2015-09-16T00:47:44.363
3475
16663
answer