2

我们有一位客户希望在其网站上为“注册商标”(®) 字符添加上标。

该网站是基于 CMS 的,他们不仅无法始终如一地使用上标字符,而且上标样式也不会传递到任何 CMS 生成的页面标题等。

我想知道实现这一目标的可能/最佳方法是什么:

  • 可以使用 CSS 将样式应用于特定的特殊字符吗?
  • 使用 jQuery 应用样式发布页面加载。
  • 扩展模板解析引擎(Silverstripe)

任何想法表示赞赏。

4

5 回答 5

2

我不相信它可以单独使用 CSS 来完成。

我会使用 jQuery 来查找和替换&reg;内容<sup>&reg;</sup>

下面有一个类似的问题,并提供了有关如何执行此操作的正确答案(省去了我的麻烦):

更改注册符号 (R)

于 2012-05-31T21:09:45.723 回答
1

不幸的是,我认为您不能仅使用 CSS 选择某些字符

然而...

  1. 上标有一个 CSS 规则,它是:

    vertical-align: super;
    
  2. 这个 jQuery 工作:

    $(document).ready(function() {
       $('*').each(function() {
        var n = $(this).html().replace(
            new RegExp('®','g'),
            '<sup>®</sup>'
            ).replace(
            new RegExp('&reg;','g'),
            '<sup>&reg;</sup>'
            );
        $(this).html(n);
      });
    });​
    

我希望这有帮助!

于 2012-05-31T21:22:17.220 回答
0
  • 我不认为你可以单独做到这一点
  • 使用 jquery/javascript/css,您可以创建一个包含字符样式信息的类,然后让 jquery 解析文件部分并将字符包装在<span></span>标签内,并应用该 css 类
  • 我对银条一无所知,所以我不能评论它的用法
于 2012-05-31T21:05:21.117 回答
0

严格来说,您不能使用任何单个 CSS 属性创建“超级脚本”(有 veritcal-align “超级”,但它不会改变字符的大小或样式,只是它相对于文本基线的位置)。但是,有一些方法可以成功地实现这一点,我之前已经尝试过。

首先,正如另外两张海报所提到的,您需要以某种方式定位该符号。如果您可以&reg;用标记包装所有字符,那么其余的可以用 CSS 轻松完成。例如:

当您拥有这些样式时<sup>&reg;</sup>,您可以简单地将这些样式添加到您的样式表中以获得所需的效果:

<div>
<p>This is some crazy text brought to you by my Company<sup>&reg;</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>其他人建议的标签中。

于 2012-05-31T21:24:19.970 回答
-1

在 PHP 代码中,您可以将其放入您的 Page 类中,以便在服务器端执行您想要的操作:

function Content() {
  return str_replace('®', '<sup class="copyright">®</sup>', $this->Content);
}

$Content在模板引擎中将首先查找$page->Content()(方法),如果不存在将查找$page->Content. 相比之下,CMS 编辑器只查找$page->Content. 这意味着通过定义Content()处理输出的方法,您可以包含仅在模板显示上执行且不会与 CMS 混在一起的代码。

于 2012-06-07T04:50:48.037 回答