有没有一种方法可以让HTML页面上的文本不能被选择?
有没有一种方法可以让HTML页面上的文本不能被选择?
这个问题已经有了答案:
我正在构建一个带有一些文本元素的HTML用户界面,例如选项卡名称,当选择它们时看起来很糟糕。不幸的是,许多浏览器默认情况下双击选项卡名称会将其选中,这很容易被用户误操作。
我可能可以用JavaScript技巧解决这个问题(我也想看看这些答案)--但我真的希望有一种CSS/HTML直接适用于所有浏览器的方法。
admin 更改状态以发布 2023年5月25日
在大多数浏览器中,可以使用 CSS 实现此功能:
\n
*.unselectable { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; /* Introduced in IE 10. See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/ */ -ms-user-select: none; user-select: none; }
\n对于 IE < 10 和 Opera,需要使用要使其无法选取的元素的 unselectable
属性。您可以在 HTML 中使用属性设置它:
\n
...
\n不幸的是,此属性不能被继承,这意味着您必须在 中的每个元素的开始标记中放置一个属性。如果这是问题,您可以使用 JavaScript 递归地为元素的后代实现此功能:
\n
function makeUnselectable(node) { if (node.nodeType == 1) { node.setAttribute("unselectable", "on"); } var child = node.firstChild; while (child) { makeUnselectable(child); child = child.nextSibling; } } makeUnselectable(document.getElementById("foo"));