我们有一位客户希望在其网站上为“注册商标”(®) 字符添加上标。
该网站是基于 CMS 的,他们不仅无法始终如一地使用上标字符,而且上标样式也不会传递到任何 CMS 生成的页面标题等。
我想知道实现这一目标的可能/最佳方法是什么:
- 可以使用 CSS 将样式应用于特定的特殊字符吗?
- 使用 jQuery 应用样式发布页面加载。
- 扩展模板解析引擎(Silverstripe)
任何想法表示赞赏。
我们有一位客户希望在其网站上为“注册商标”(®) 字符添加上标。
该网站是基于 CMS 的,他们不仅无法始终如一地使用上标字符,而且上标样式也不会传递到任何 CMS 生成的页面标题等。
我想知道实现这一目标的可能/最佳方法是什么:
任何想法表示赞赏。
我不相信它可以单独使用 CSS 来完成。
我会使用 jQuery 来查找和替换®
内容<sup>®</sup>
下面有一个类似的问题,并提供了有关如何执行此操作的正确答案(省去了我的麻烦):
不幸的是,我认为您不能仅使用 CSS 选择某些字符。
然而...
上标有一个 CSS 规则,它是:
vertical-align: super;
这个 jQuery 工作:
$(document).ready(function() {
$('*').each(function() {
var n = $(this).html().replace(
new RegExp('®','g'),
'<sup>®</sup>'
).replace(
new RegExp('®','g'),
'<sup>®</sup>'
);
$(this).html(n);
});
});
我希望这有帮助!
<span></span>
标签内,并应用该 css 类严格来说,您不能使用任何单个 CSS 属性创建“超级脚本”(有 veritcal-align “超级”,但它不会改变字符的大小或样式,只是它相对于文本基线的位置)。但是,有一些方法可以成功地实现这一点,我之前已经尝试过。
首先,正如另外两张海报所提到的,您需要以某种方式定位该符号。如果您可以®
用标记包装所有字符,那么其余的可以用 CSS 轻松完成。例如:
当您拥有这些样式时<sup>®</sup>
,您可以简单地将这些样式添加到您的样式表中以获得所需的效果:
<div>
<p>This is some crazy text brought to you by my Company<sup>®</sup><p>
<div>
div{
background:#000;
width:80%;
height:80%;
padding:10% 10%;
}
p{
background:#4d4d4d;
padding:10% 20%;
color:#fff;
font-family:Arial-black,Arial,sans-serif;
font-size:2em;
}
sup{
position:relative;
font-size:.75em;
}
这里是一个例子:http: //jsfiddle.net/jglovier/vqHuu/
当然,如果您不能像这样访问标记,则需要使用 jQuery 来查找字符并将它们包装在<sup>
其他人建议的标签中。
在 PHP 代码中,您可以将其放入您的 Page 类中,以便在服务器端执行您想要的操作:
function Content() {
return str_replace('®', '<sup class="copyright">®</sup>', $this->Content);
}
$Content
在模板引擎中将首先查找$page->Content()
(方法),如果不存在将查找$page->Content
. 相比之下,CMS 编辑器只查找$page->Content
. 这意味着通过定义Content()
处理输出的方法,您可以包含仅在模板显示上执行且不会与 CMS 混在一起的代码。