选择:在伪类/元素之后

JM *_*ork 6 css jquery

在CSS中,我习惯于body:after添加内容,我想在jQuery中获得它的高度.我怎么能这样做?

我从这里读到这些伪元素是为了修改而不可选择的?我似乎甚至无法$("body > :last-child")选择应该是最后一个孩子:after

Ric*_*uen 5

请注意,您使用:after并且content不是节点添加的内容- 它既不是文档中的元素也不是文本.您可以使用FireBug看到这一点:在此屏幕截图中,我的HTML包含单词"hello",但单词"world!" 使用CSS添加:

Hello World页面的屏幕截图,其中单词World添加了CSS内容. FireBug是开放的,清楚地表明CSS内容不会向DOM添加元素

你可以做的是使用getComputedStyle来找出内容是什么,如下例所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" >
    <head>
        <title>Select :after pseudo class/element</title>
        <style type="text/css">
        #msg:after {
            content:" World!"
        }
        </style>
        <script type="text/javascript">
        window.onload = function() {
            if(window.getComputedStyle) {
                var element = document.getElementById("msg");
                var style = window.getComputedStyle(element,':after')
                alert(style.content);
            }
            else {
                alert("This browser sucks!"); // ;)
            }
        }
        </script>
    </head>
    <body>
        <h1>
            <span id="msg">Hello</span>
        </h1>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

...不幸的是,这使您可以访问内容,但不能访问高度:(