飞碟是否支持伪元素

时间:2017-08-28 20:21:21

标签: flying-saucer

我一直在尝试将带有内容的伪元素添加到CSS中,以便使用Flying Saucer库进行转换。当在常规浏览器中以HTML格式查看页面时,代码工作正常,我可以看到伪元素(:之前)。但是,使用Flying Saucer渲染PDF时,伪元素会消失。

根据飞碟官方规范,支持CSS 2.1,因此应包含伪元素和内容属性。那为什么它不能为我工作呢?所有其他CSS工作正常。

2 个答案:

答案 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>

结果(使用飞碟9.1.6): PDF showing pseudo element applied

相关问题