我一直在尝试将带有内容的伪元素添加到CSS中,以便使用Flying Saucer库进行转换。当在常规浏览器中以HTML格式查看页面时,代码工作正常,我可以看到伪元素(:之前)。但是,使用Flying Saucer渲染PDF时,伪元素会消失。
根据飞碟官方规范,支持CSS 2.1,因此应包含伪元素和内容属性。那为什么它不能为我工作呢?所有其他CSS工作正常。
答案 0 :(得分:3)
在the CSSParser中列出的CSS2.1伪元素之外,还有:
first-line
first-letter
before
after
飞碟支持以下伪元素进行输出渲染:
first-child
even
odd
last-child
还支持某些与浏览器相关/交互的伪元素:
link
visited
hover
focus
active
请参见addPseudoClassOrElement的源代码。
答案 1 :(得分:2)
Flying-saucer支持以下CSS伪元素:
before
after
first-line
first-letter
它只支持标准的双冒号CSS3语法(::after
),而不支持旧的单冒号CSS2语法(:after
)。
这是一个有效的例子:
<html>
<head>
<style>
div::before {content: "before - "}
div::after {content: " - after"}
p::first-line {font-weight:bold}
p::first-letter {color:blue}
</style>
</head>
<body>
<div>A div</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sed scelerisque augue. Nulla eleifend aliquet tortor, vel placerat velit fringilla vitae. Sed quis sem eu arcu dapibus convallis.</p>
</body>
</html>