0

我正在尝试使用 css 覆盖具有属性 unselectable="on" 的元素的文本选择 IE 10,但以下 css 规则似乎不起作用:

-ms-user-select:文本!重要;

如果一个元素有 unselectable="on",IE10 会忽略 css 覆盖,即使它有 !important。

但是,如果用户使用 unselectable="on" 开始选择元素的“外部”,则可以奇怪地选择该元素的内容,尽管当父元素没有可选择的内容时这无济于事,在这种情况下unselectable="on" 的元素实际上是不可选择的。

这是一个简单的测试用例(针对 IE10):http: //jsfiddle.net/svysK/

<html><head>
<style> 
.maincontainer, .innercontainer {
  -ms-user-select: text !important;
}
<style></head><body>
<div class="maincontainer">some text<div class="innercontainer" unselectable="on">inner text</div></div>
</body></html>
  • 单击并拖动“内部文本”:光标更改,但文本不可选择(这是我的问题)。
  • 单击并拖动“一些文本”:光标更改,文本是可选的。
  • 单击并拖动“一些文本”和“内部文本”:光标更改,所有文本都是可选的。

知道是否有解决此行为的方法吗?(如果可能,不使用 javascript 更改属性值)

谢谢你的关注,最好的问候,奥利弗

4

1 回答 1

3

CSS 和 "!important" 作用于元素的样式,并且不能覆盖属性值。因此,IE10 可能会决定,由于存在“不可选择”属性,因此该元素不应该是可选择的,无论您在其上放置何种样式。

您需要删除该属性,可能使用 jQuery。

$(".innercontainer").removeAttr("unselectable");
于 2013-05-07T08:17:20.533 回答