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

标签 html css css-selectors css-paged-media antenna-house

我需要在所有 :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 设置不同的值?例如,首页为 50 毫米,右页为 90 毫米?

最佳答案

没有人接受吗?这是我的看法。 不,无法根据页面选择器更改属性值。或者至少,我在规范中没有找到任何相关内容。

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

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

@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;
}

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

关于html - 不同的CSS属性值取决于@page选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70080787/

相关文章:

javascript - 将数组附加到javascript中的类

javascript - 如何在不增加页面高度的情况下生成html元素

javascript - 异步加载以消除渲染阻塞 js 和 css?

javascript - 用于使 div 与页面/文档大小相同的 CSS/javascript

html - 面包屑不显示过度倾斜

css - 选择第 n 个元素,除非元素位于特定位置并且是 CSS 的最后一个子元素

javascript - 从中心缩放后将元素保持在原始位置

javascript - JQuery 聚焦并单击同时运行在元素上

html - 用于触发 Google 跟踪代码管理器的 CSS 选择器

html - 令人费解的伪元素语法 :first-child and :first-letter