当前位置: 首页 > 面试题库 >

有没有办法使HTML页面上的文本无法选择?

斜俊
2023-03-14
问题内容

我正在构建带有一些文本元素(例如选项卡名称)的HTML
UI,这些文本元素在被选中时看起来很糟糕。不幸的是,对于用户来说,双击选项卡名称非常容易,该名称在许多浏览器中都是默认选择的。

我也许可以用JavaScript技巧解决这个问题(我也想看看那些答案),但是我真的希望CSS / HTML中的某些功能可以直接在所有浏览器中使用。


问题答案:

在大多数浏览器中,可以使用CSS来实现:

*.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;
}

对于IE <10和Opera,您将需要使用unselectable希望不可选择的元素的属性。您可以使用HTML中的属性进行设置:

<div id="foo" unselectable="on" class="unselectable">...</div>

遗憾的是,该属性没有被继承,这意味着您必须在内每个元素的开始标记中放置一个属性<div>。如果这是一个问题,则可以改用JavaScript为元素的后代递归执行此操作:

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"));


 类似资料:
  • 问题内容: 我正在构建带有一些文本元素(例如选项卡名称)的HTMLUI,这些文本元素在被选中时看起来很糟糕。不幸的是,对于用户来说,双击选项卡名称非常容易,该名称在许多浏览器中都是默认选择的。 我也许可以用JavaScript技巧解决这个问题(我也想看看那些答案),但是我真的希望CSS/HTML中的某些功能可以直接在所有浏览器中使用。 问题答案: 在大多数浏览器中,可以使用CSS来实现: 对于IE

  • 问题内容: 根据我的研究,看来我想做的事是不可能的,但是如果情况有所变化,我想检查一下是否有人想出办法。 我有一个Web应用程序,可以根据浏览器窗口中的用户选择生成打印报告。我有一个自定义的页眉和页脚,当从浏览器打印报告时,应在每个打印的页面上重复该页眉和页脚。它不是我需要的浏览器页眉和页脚,而是我生成的自定义页眉和页脚。另外,我不认为这是CSS和媒体类型的问题,但我不是CSS专家。我没有让页眉和

  • 我有一个组件,它基本上从输入中获取所有内容并呈现html: 现在,当我开始输入时,它显然会向我抛出错误,说输入值没有结束或结束标记。 有没有办法事先验证HTML?它适用于v-html,但第三方模块存在问题。 沙盒:https://codesandbox.io/s/vruntimetemplate-27bdz?fontsize=14

  • 有没有办法给text()一个背景颜色? 示例代码: 我希望这篇文章有一个背景颜色。 谁能帮我一下吗 编辑:text()方法位于draw()中

  • 问题内容: 由于某些性能原因,我试图找到一种仅选择所选节点中同级节点的方法。例如, 如果选择了inner1节点,是否可以访问其兄弟节点? 问题答案: 好吧…确定…先拜访父母,再拜访孩子。 或者…使用jQuery: 编辑:Cletus一如既往地鼓舞人心。 我进一步挖掘。这就是jQuery本质上如何获得兄弟姐妹的方式:

  • 我希望从C中的浮点数组中计算中值: FloatArray包含一个常规的C浮点数组。 我正在使用,但想知道是否有像这样的工具可以处理数据?现在,我正在制作一个副本,然后在扔掉副本之前执行。如果数据没有像这样的东西,是否有更有效的方法使用复制步骤来计算信息,从而避免潜在的额外O(n)循环?也许性能影响可以忽略不计?我的数组大小可能在20亿量级。