Flexbox wkhtmltopdf渲染问题

时间:2015-11-18 16:04:32

标签: html css flexbox wkhtmltopdf

我有一个页面,我正在变成一个带有wkhtmltopdf的pdf。我有一个3列布局,它在Chrome中运行良好,但pdf生成不正确。是否有一个替代flexbox可以提供相同的视图或方法使wctmltopdf中的flexbox工作? Modernizr没有帮助。感谢。

HTML:

<div class="header">
  <div id="name" class="center">
    <h2>
      Centered Text
    </h2>
  </div>
  <div id="links" class="left">
    <h3>
    Left Line 1
    <br>
    Left Line 2
    </h3>
  </div>
  <div id="contact" class="right">
    <h3>
    Right Line 1
    <br>
    Right Line 2
    </h3>
  </div>
</div>
</div class="clear"></div>

CSS:

.header {
  margin-top: 0;
  margin-bottom: 2px;
  display: flex;
  justify-content: space-between;
}

.center {
  order: 2;
  text-align: center;
}

.left {
  order: 1;
  float: left;
  text-align: left;
}

.right {
  order: 3;
  float: right;
  text-align: right;
}

.clear:before,
.clear:after {
  flex-basis: 0;
  order: 1;
}

.clear {
  clear: both;
}

2 个答案:

答案 0 :(得分:8)

wkhtmltopdf uses an old version of WebKit所以你必须使用the original Flexbox spec,它不是那么强大,但仍然可以做一些相同的效果。

另请注意,您必须使用-webkit-为许多属性添加前缀。

答案 1 :(得分:0)

该问题中的此特定评论带来了对我有用的解决方案:https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1522#issuecomment-848651693

"要使 wkhtmltopdf 上的工作灵活,您需要使用 display: -webkit-box; for flex 和 -webkit-box-pack: justify; for justify-content: space-between;。所以我们应该使用旧的 flex 语法"