2

ウェブサイト全体で「登録商標」(®)文字に上付き文字を付けたいクライアントがいます。

このWebサイトはCMSベースであり、文字を一貫して上付き文字で表示するのに問題があるだけでなく、上付き文字のスタイルがCMSで生成されたページタイトルなどに反映されません。

私はこれを達成するための可能な/最良の方法は何であるか疑問に思っています:

  • CSSを使用して、特定の特殊文字にスタイルを適用できますか?
  • jQueryを使用してスタイル投稿ページの読み込みを適用します。
  • テンプレート解析エンジンの拡張(Silverstripe)

どんなアイデアでも大歓迎です。

4

5 に答える 5

2

CSSだけでできるとは思いません。

&reg;jQueryを使用してコンテンツを検索し、次のように置き換えます<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

厳密に言えば、単一のCSSプロパティで「super-script」を作成することはできません(veritcal-align「super」がありますが、文字のサイズやスタイルは変更されず、テキストベースラインに対する相対的な位置のみが変更されます)。しかし、私が以前に試したように、これを成功させる方法がいくつかあります。

まず、他の2つのポスターが述べているように、何らかの方法でシンボルをターゲットにする必要があります。すべての&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 に答える
0
  • 私はあなたがこれを行うことができるとは思わないcssだけで
  • jquery / javascript / cssを使用すると、文字のスタイル情報を含むクラスを作成し、jqueryでファイルセクションを解析して<span></span>、そのcssクラスを適用したタグ内で文字をラップすることができます。
  • 私はsilverstripeについて何も知らないので、その使用法についてコメントすることはできません
于 2012-05-31T21:05:21.117 に答える
-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 に答える