每个打印页面上的最后一个元素的样式不同

Posted

技术标签:

【中文标题】每个打印页面上的最后一个元素的样式不同【英文标题】:Style last element on every printed page differently 【发布时间】:2018-03-15 22:16:26 【问题描述】:

我有一个元素列表(任意长度)。但是,当用户打印它时,我想更改每个页面上最后一个元素的样式。

到目前为止,我尝试使用 @page .el:last-child... 但这没有任何作用。并且简单地使用el:last-child 只会将样式应用于最后一页上的最后一个孩子。

感谢任何帮助。

我有以下 html

.el 
  width: 500px;
  height:250px;
  background:#ccc;
  margin:10px;

@page 
  .el:last-child 
    font-weight:bold;
  

@media print 
  .el display:block;
    <div>
    	<div class="el"> element </div>
    	<div class="el"> element </div>
    	<div class="el"> element </div>
    	<div class="el"> element </div>
    	<div class="el"> element </div>
    	<div class="el"> element </div>
    	<div class="el"> element </div>
    </div>

【问题讨论】:

此 AFAIK 没有选择器。 “页面”是人工构造而不是 DOM 元素,因此不能被 CSS 使用。 【参考方案1】:

根据MDN @page,

您不能使用 @page 更改所有 CSS 属性。你只能改变 文档的边距、孤儿、寡妇和分页符。 更改任何其他 CSS 属性的尝试将被忽略。

【讨论】:

【参考方案2】:

将一个类添加到您的容器 div 并使用 last-child

Fiddle

【讨论】:

这仅适用于我在帖子中提到的最后一页上的最后一个孩子

以上是关于每个打印页面上的最后一个元素的样式不同的主要内容,如果未能解决你的问题,请参考以下文章

同一组件中的不同样式,仅在 gatsby 构建版本中

如何在 drupal 7 站点中创建不同的页面样式?

一个 HTML 页面上的多个打印按钮,只打印某些部分?

PC端页面适应不同的分辨率的方法

是否有任何限制使其无法在Firefox中的每个页面上打印?

在当前页面按钮上应用不同的样式?