【发布时间】:2014-05-14 11:36:55
【问题描述】:
我正在尝试让我们的 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。如果可能,我希望/需要保留流量。
- 将“页面的默认标题”包装在一个跨度中,并在使用备用标题时将其设置为在 CSS 中显示:无。
即
<header data-alternate="An Alternate Title">
<span class="default">This Page's Default Title</span>
</header>
这可行,但嵌套在标题中的跨度令人不快。
有没有一种方法可以针对标签的文本而不针对其生成的 :before/:after 内容?有没有其他方法可以做到这一点?
【问题讨论】:
标签: css css-content