gpt4 book ai didi

html - 有没有办法防止指针/光标与使用 CSS 的选择元素后面的元素交互?

转载 作者:行者123 更新时间:2023-11-28 12:34:59 25 4
gpt4 key购买 nike

有没有办法阻止指针/光标与使用 CSS 的选择元素后面的元素交互?这似乎只发生在 IE11 中。

这是一个显示我的问题的 jsFiddle:http://jsfiddle.net/6mzhgmvj/ .

附带代码如下:

<!DOCTYPE html>
<html>
<body>

<select autofocus>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>

<p><strong>Note:</strong> The autofocus attribute of the select tag is not supported in Internet Explorer 9 and earlier versions, or in Firefox.</p>

</body>
</html>

重现步骤:

  1. 展开下拉菜单。
  2. 将鼠标悬停在选项上。
  3. 将鼠标悬停在选项 3 和 4 上时,光标会在“默认”和“文本”之间快速变化,因为展开时它后面有一个段落元素。

在这方面的任何帮助都会很棒。

最佳答案

正如我在评论中所说,问题 Bad cursor in select/option, IE有一个建议相当复杂的 JS 解决方案的答案。

可以像这样完成一些更简单的事情:

<span><select>
/* options here */
</select></span>

span {
position:relative;
z-index:0;
}
span:after {
content:"";
position:absolute;
top:0;
left:0;
right:0;
height:100px;
background:rgba(255, 0, 0, .25);
z-index:-1;
}

我们在 select 元素周围放置了一个 span,然后在 select 下方放置了一个伪元素,它具有 cursor:pointer 设置。这使得光标保持指针,即使较低的选项悬停。编辑:实际上,我在早期版本中使用了cursor:pointer,但后来我意识到IE 用于选择选项的光标是不同的,并且设置光标似乎根本没有必要 - 鼠标指针所在的元素没有任何直接文本内容似乎已经足够了。

(当有更多选项时,您可能希望增加伪元素的高度。)

background 颜色不是必需的,我把它放在里面只是为了在伪元素所在的位置清晰可见。删除背景,它仍然可以正常工作。

一个小缺点:该伪元素必须位于 z 轴上的以下内容之上,否则该段落将再次“接管”,我们遇到与之前相同的问题。由于可用性可能会受到影响(无法开始选择该伪元素下方的文本,其下方的可聚焦元素将不可点击),这是另一个版本,它仅在 select 具有时才使该元素可见重点:

<span>
<select>
/* options here */
</select>
<span></span>
</span>

span {
position:relative;
z-index:0;
}
span span {
display:none;
content:"";
position:absolute;
top:0;
left:0;
right:0;
height:100px;
background:rgba(255, 0, 0, .25);
z-index:-1;
}
span select:focus + span {
display:block;
}

http://jsfiddle.net/CBroe/y4k35rqn/1/

这使用相邻的兄弟组合器使元素仅在 select 具有焦点时显示 - 这就是为什么我在这里使用额外的 span 元素,否则我会没有“下一个兄弟”可以从聚焦的 select 中定位。

(当然,当你绝对需要你的 select 来设置 autofocus 属性时,这当然不会很好地工作,为什么我在这里删除它。也许这是一个妥协你愿意制作。或者如果该元素在页面加载时显示也不会造成伤害,因为用户必须先从 select 中移除焦点,然后才能与其他元素交互。你的选择。)

关于html - 有没有办法防止指针/光标与使用 CSS 的选择元素后面的元素交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27911035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com