html - 单击元素后面的按钮

标签 html css button click

我有一个位于 div 中的按钮,它位于另一个 div 的后面。第二个 div 使用 css 与第一个 div 重叠:position: absolute;

因此该按钮不可点击。有什么方法可以让它像普通按钮一样可点击吗?

示例:jsfiddle

body {
  background-color: blue;
}

.stack {
  width: 320px;
  height: 240px;
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: white;
  margin-top: -120px;
  margin-left: -160px;
}

.background {
  width: 320px;
  height: 240px;
  background-image: url('http://www.userlogos.org/files/logos/ps1d3r/apple-black-i.png');
  top: 0px;
  left: 0px;
  position: absolute;
}

.card {
  pointer-events: none;
  width: 320px;
  height: 240px;
  background-image: url('http://2.bp.blogspot.com/-OIHQM4x8l0U/UEiDLQyiTRI/AAAAAAAAHFs/i1a6rkqQ8tQ/s320/floral+swirl.png');
  top: 0px;
  left: 0px;
  position: absolute;
}
<div class="stack">
  <div class="background" onclick="alert('background clicked');">
    <button onclick="alert('bg-button clicked');" style="left:65px; top:65px; position: absolute;">This is a background button</button>
    <div class="card">
      <button onclick="alert('card-button clicked');">This is a card button</button>
      <textarea style="left:100px; top:100px; position: absolute;">This is a card textarea</textarea>
    </div>
  </div>
</div>

最佳答案

您可以在 .card 上使用 pointer-events:none;。这将禁用 .card div 上的点击事件,用户可以点击它后面的按钮。 More info here (MDN) .

这是一个示例,展示了如何在隐藏在另一个元素后面的元素上启用点击事件:

button {
  margin: 50px;
}

button:focus {
  background: red;
}
button:hover {
  background: teal;
}

.inFront {
  pointer-events: none;
  position: absolute;
  top: 25px; left: 25px;
  right: 25px; height: 150px;
  border: 3px solid red;
  background: rgba(0, 0, 0, .5);
}
<button onclick="alert('button clicked');">I am a button behind the .inFront div</button>
<div class="inFront"></div>

在此示例中,.inFront div 位于按钮上方,但 div 上的 pointer-events: none; 属性允许按钮被单击、聚焦和悬停。


关于您的示例,缺点是它还会禁用文本区域和“卡片按钮”,因此您必须更改 HTML 并将文本区域和卡片按钮移出 .card div 所以他们仍然可以点击。这是一个演示:

DEMO

关于html - 单击元素后面的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24636043/

相关文章:

css - 如何修复故障转换 :rotateX 3d button?

javascript - 如何使用 SoundCloud API 按流派过滤

css - 同一页面上的多个 Addthis 按钮,绝对位置只显示第一个

html - 当浏览器改变大小时网页变得困惑

javascript - 如何消除 HTML 按钮周围的灰色区域?

Java - 如何通过按下按钮获取下一张图像

php - 无法使用 php 删除项目符号点 ' • '

javascript - 最适合在按钮中打开链接的 onclick 或 href

jquery - 向左切换菜单

css - 我可以导入 scss 文件使用 Webpack 的 'composes' 语句吗?