不同的 CSS 属性 值取决于@page 选择器

Different CSS property values depending on @page selector

我需要在所有 :first 和 :right 页面的右侧显示一个“标签”。选项卡必须位于所有页面上的相同位置。

这是我的模拟HTML:

<?xml version="1.0" encoding="UTF-8"?>
<html>
    <head/>
    <tab class="tab1">RG</tab>
    <body>
        <section>
            <p>All my content</p>.
        </section>
    </body>
</html>

不幸的是,:first 和 :right 页面的页边距不同,因此下面的 CSS 导致选项卡根据页面位于不同的位置:

@page :first {
  size: A4;
  margin-top: 72mm;
  @right-top {
    content: element(rightTab);
  }    
}
@page :right{
  size: A4;  
  margin-top: 32mm;  
  @right-top {
    content: element(rightTab);
  }
}
tab{
    position:running(rightTab);
}
.tab1{
    margin-top:50mm;
}

是否可以根据页面选择器为 margin-top 设置不同的值?例如,50mm 在 :first pages 和 90mm 在 :right pages?

没有人要?这是我的看法。 不,不可能根据页面选择器更改 属性 的值。或者至少,我没有在规范中找到任何关于它的信息。

无法在 class 级别执行此操作,但当然可以根据选择器更改页面的属性。

因此,我更改了页边距,使选项卡现在显示在两个页面的相同位置。 属性 相关区域的 margin-top(@page 的@right-top :first)现在设置为 -40mm,因此该区域的有效边距是相同的(72 - 40 = 32mm) @page :first 和@page :right.

@page :first {
  size: A4;
  margin-top: 72mm;
  @right-top {
  margin-top:-40mm;
    content: element(rightTab);
  }    
}
@page :right{
  size: A4;  
  margin-top: 32mm;  
  @right-top {
    content: element(rightTab);
  }
}
tab{
    position:running(rightTab);
}
.tab1{
    margin-top:50mm;
}

好吧,如果我再考虑几分钟,我就可以在不发布的情况下弄清楚。