gpt4 book ai didi

html - float 元素不接收鼠标事件

转载 作者:行者123 更新时间:2023-11-28 10:35:01 26 4
gpt4 key购买 nike

两个子元素在一个固定宽度的 div 中。

第一个元素是一个可能很长的文本句子,所以使用了overflow: hidden规则。

第二个是 float 元素,它必须始终可见并且位于父元素的右侧。此元素必须对悬停和单击等鼠标事件使用react。

以下代码段演示了该问题。

测试鼠标悬停和点击:

  • 悬停时元素颜色变化(句子为绿色, float 为红色)
  • 在控制台上可以看到每个元素的点击次数

当句子足够短以至于句子和 float 元素之间仍有一些空间时,一切正常。

但是当句子很长时, float 元素不再接收事件,而是句子接收。

有没有办法在保留此布局的同时确保鼠标事件由 float 元素接收?

.parent {
width: 200px;
white-space: nowrap;
border: black 1px solid;
overflow: hidden;
text-overflow: ellipsis;
position: relative;
}

.sentence {
/* pointer-events: none; */
}

.sentence:hover {
color: green
}

.float {
float: right;
z-index: 10;
}

.float:hover {
color: red
}
<div class="parent" onclick="console.log('parent')">
<div class="float" onclick="console.log('float')">FLOAT</div>
<span class="sentence" onclick="console.log('sentence')">very loooooooooooooong sentence</span>
</div>

<div class="parent" onclick="console.log('parent')">
<div class="float" onclick="console.log('float')">FLOAT</div>
<span class="sentence" onclick="console.log('sentence')">short sentence</span>
</div>

最佳答案

使用 z-index 是正确的,但 z-index 属性仅适用于具有非静态位置的元素。因此,将 position: relative 添加到您的 float 规则中:

.float {
float: right;
z-index: 10;
position:relative;
}

.parent {
width: 200px;
white-space: nowrap;
border: black 1px solid;
overflow: hidden;
text-overflow: ellipsis;
position: relative;
}

.sentence {
/* pointer-events: none; */
}

.sentence:hover {
color: green
}

.float {
float: right;
z-index: 10;
position:relative;
}

.float:hover {
color: red
}
<div class="parent" onclick="console.log('parent')">
<div class="float" onclick="console.log('float')">FLOAT</div>
<span class="sentence" onclick="console.log('sentence')">very loooooooooooooong sentence</span>
</div>

<div class="parent" onclick="console.log('parent')">
<div class="float" onclick="console.log('float')">FLOAT</div>
<span class="sentence" onclick="console.log('sentence')">short sentence</span>
</div>

关于html - float 元素不接收鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38532248/

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