我试图让我们的 CMS 编辑器能够仅使用 css 覆盖来交换用于页面标题的文本。
<header data-alternate="An Alternate Title">
This Page's Default Title
</header>
使用 :before 或 :after 标签,可以使用许多可用的替代标题之一。
header:before {
content: attr(data-alternate);
display: inline-block;
}
如果我们也可以说,
header:text {
display: none;
}
不幸的是,据我所知,没有隐藏“此页面的默认标题”以将其替换为“备用标题”的好方法。如果这是一个 Sprite,我们可以使用像 Phark 或其他方法这样的常用图像替换技术。由 :before 生成的文本替换并没有那么多,因为 :before 也受用于隐藏默认文本的 CSS 设备的影响,因此,例如,对于 Phark,:before 内容也是 -9999px。
我试图避免一些解决方案。
- 使用 Phark 方法或类似的方法隐藏默认文本,然后在 :before 内容上使用绝对定位将其放回左侧:0,顶部:0。如果可能,我希望/需要保留流量。
- 将“页面的默认标题”包装在一个跨度中,并在使用备用标题时将其设置为 display: none 在 CSS 中。
IE
<header data-alternate="An Alternate Title">
<span class="default">This Page's Default Title</span>
</header>
这可行,但嵌套在标题中的跨度令人不快。
有没有办法针对标签的文本而不同时针对其生成的 :before/:after 内容?还有另一种方法可以做到这一点吗?