根据页面是左还是右对齐文本

时间:2015-04-03 12:16:46

标签: css css-paged-media

我想做以下事情:

@page :left{
    h1 {text-align: left;}
}
@page :right {
    h1 {text-align: right;}
}

但是这种语法在CSS中不起作用。如何根据页面是左还是右更改文本对齐?

3 个答案:

答案 0 :(得分:1)

如果可以接受为页面上的所有文本设置对齐方式,则应该可以使用:

@page :left {text-align: left;}
@page :right {text-align: right;}

如果页面包含一个h1元素以及一个或多个其他元素,则可以将h1放在页眉中,请参阅this related question

答案 1 :(得分:0)

我还没有测试过,我相信你可以做到这一点:

@page :left h1 {text-align: left;}
@page :right h1 {text-align: right;}

答案 2 :(得分:0)

根据https://www.w3.org/TR/css3-page/#margin-property-list,语法:

@page :left {
    h1 { text-align: left; }
}
@page :right {
    h1 { text-align: right; }
}

是正确的;但是,正如其他人所说,目前没有@page的浏览器支持,并且最新版本的PrinceXML也不支持text-align

这意味着,到现在为止,它无法完成。

但是,PrinceXML在页边距上下文中支持margin。因此,如果可以使用静态边距推送文本,例如:

@page :left{
    h1 { margin-right: 10000em; } // We all know 10000em equals to infinity.
}
@page :right {
    h1 { margin-left: 10000em; }
}

然后这是一个好的kludge。

编辑:事实上,PrinceXML支持text-align,但不支持运行标头;显然它只适用于生成的字符串内容。