10

CSS 疑似要素を使用してあちこちにテキストを挿入する Web サイトを運営しています。それらの 1 つは、CSS カウンターの値を挿入します ( CSS テキスト インジェクションなしでこれを行うには、システムのかなりの再設計が必要になります)。具体的な CSS ルールは次のとおりです。

.num_defn .theorem_label:after {
    content: " " counter(definition, decimal);
    counter-increment: definition;
}

これにより、「 Definition」が「Definition 1 」に変換されます(たとえば)。

ただし、挿入されたテキストはブラウザで検索できません。1「Definition 1」を検索しても見つからず、「Definition。定義テキストが何であれ」を検索すると、ブラウザーは挿入された を除く行を喜んで強調表示します1。したがって、太字のテキストを強調表示として想像すると、次のようになります。

定義1 .定義テキストが何であれ

これは理想的ではありません。人々は定義を番号で参照し、「XYZ ページの定義 1 を見てください」と言うのが好きです (そして、ハイパーリンクが使用できない状況では - 奇妙なことですが、実際に発生します)。

したがって:

  1. サーバー側で、挿入されたテキストを「検索可能」として指定する方法はありますか?
  2. そうでない場合、ブラウザ側でこれを有効にする簡単な方法はありますか?
4

1 に答える 1

4

私の知る限り、方法はありません。おそらくJSを使用してその情報にアクセスできますが、それはある種の「ハック」行為になります。

HTML と CSS の目的を考えると、それはある程度理にかなっていると思います。ご存知かもしれませんが、HTML はコンテンツのセマンティックな意味を記述するためのものであり、CSS はページの外観を制御するためのものです。つまり、CSS を使用してページにテキストを追加する場合、純粋にスタイル上の目的でのみ追加する必要があります。

サイトの訪問者にとって何かを意味するテキストが実際のテキストである場合は、それを HTML としてサイトに直接配置する必要があります。

同様に、これを行った方法はベストプラクティスに反します。CSS を無効にすると、一部のコンテンツが表示されなくなるためです。

于 2012-11-08T14:05:56.460 に答える