javascript - HTML:你能隐藏/忽略浏览器中的文本元素吗 Find (CTRL+F)

标签 javascript html css

我有一个 UI 相当复杂的 Web 应用程序,屏幕的一部分保留用于显示内容。

如果可能的话,我想做到这样,当用户使用浏览器的内置文本搜索 (CTRL+F) 时,UI 中的任何文本都将被忽略,只搜索实际内容。

这可行吗? CSS 和 JavaScript 是可以接受的

(我意识到我可能会将文本呈现为 <canvas> 但不值得为此付出努力)

最佳答案

您可以使用 CSS content 注入(inject)您的 UI 文本属性(property)。像这样生成的文本不可搜索,因为它是文档样式的一部分而不是内容。

例如:

如果您的 UI 中有一个按钮,例如 <button id="dosomething"></button>您可以使用以下 CSS 在其中添加一些不可搜索的文本:

#dosomething:before {
    content: "Click Me";
}

我创建了一个 fiddle 来演示它是如何工作的:http://jsfiddle.net/3xENz/请注意,它甚至适用于 <a>标签。

我建议您坚持使用 :before选择器,因为它适用于 IE8,而 :after选择器没有。

如果您有一个更复杂的 UI 元素,您还可以在其中添加另一个元素来保存文本内容。例如:

<div id="complexcontrol"><div class="text"></div></div>

使用以下 CSS:

#complexcontrol .text:before {
    content: "Click Me";
}

由于屏幕阅读器可能无法正确处理这些样式,您仍然会遇到与处理图像时相同的可访问性问题,但维护起来会容易得多,并且还可以实现更具响应性的设计。

关于javascript - HTML:你能隐藏/忽略浏览器中的文本元素吗 Find (CTRL+F),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19457994/

相关文章:

JavaScript 对象

JavaScript 复合字符串

javascript - 使用 JS/Jquery 在现有 HTML 元素中添加图像

javascript - 具有更新默认颜色的 Highcharts 气泡图

javascript - CSS 水平滚动,如何将 "below"定位在 "right"之前?

javascript - 如何设置显示:block and transition opacity at the same time in React?

javascript - ReactJS - TypeError : requests. map 不是函数

javascript - 使用 JQuery 动态确定点击了哪个链接

javascript - Chocolat.js Lightbox jQuery 未检测到元素,返回未定义

css - 添加更多事件到可排序列表 jQuery UI