10

我运行一个使用 CSS 伪元素在这里和那里插入文本的网站。其中之一插入了 CSS 计数器的值(因此需要对系统进行大量重新设计才能在没有CSS 文本注入的情况下执行此操作)。具体的CSS规则是:

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

这将“定义”转换为“定义 1 ”(比如说)。

但是,浏览器无法搜索注入的文本。它看不到1: 如果我搜索“定义 1”,那么它就找不到它,如果我搜索“定义。无论定义文本是什么”,那么浏览器会愉快地突出显示除插入的1. 因此,如果您将粗体文本想象为突出显示,它将如下所示:

定义1 。无论定义文本是什么

这并不理想!人们喜欢通过编号来引用定义,并说“查看 XYZ 页面上的定义 1”(以及在超链接不可用的情况下 - 我知道这很奇怪,但确实会发生)。

因此:

  1. 有什么方法可以让我在服务器端将注入的文本指定为“可搜索”?
  2. 如果没有,浏览器端是否有一种简单的方法可以启用它?
4

1 回答 1

4

据我所知没有办法。您可能可以使用 JS 来访问该信息,但这将是某种“黑客”的事情。

当您考虑 HTML 和 CSS 的目的时,我认为这有点道理。您可能知道 HTML 旨在描述内容的语义,而 CSS 旨在控制页面的外观。因此,简而言之,如果您使用 CSS 将任何文本添加到您的页面,那么它应该只是出于文体目的。

如果它是对您的网站访问者有意义的实际文本,您需要将其作为 HTML 直接放在您的网站中。

您这样做的方式也违反了最佳实践。因为如果你禁用 CSS,一些内容就会消失。

于 2012-11-08T14:05:56.460 回答