【问题标题】:Can't click top half of bootstrap button无法单击引导按钮的上半部分
【发布时间】:2018-01-21 01:02:46
【问题描述】:

我在引导程序中有一个基本的 btn-block btn-sm 按钮,它在我的 CSS 中使用 position:sticky; top:10px 位于固定位置。问题是,当光标位于按钮的上半部分时,该按钮不显示任何悬停效果,并且您无法单击它。另外,在按钮下方一点,你可以将鼠标悬停在它上面,按钮会显示悬停效果,当你点击它时,会注册一个按钮click事件。看起来按钮的“可点击”部分偏移了大约 10 像素。

我的另一个按钮(发送按钮)似乎没有这个问题,所以它看起来与该按钮的 position sticky 样式有关。

似乎没有其他人问过类似的问题,所以我什至不知道如何开始尝试寻找解决方案。

我的一些代码:

#latest-msg {
    position: sticky;
    top: 10px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="card" id="chat-wrapper">
    <div class="card-header text-left" id="chat-title">
        Chat
    </div>
    <div class="card-body" id="chat-messages">
        <button type="button" class="btn btn-primary btn-block btn-sm" id="latest-msg">Latest Message</button>
        <!--^^^THIS BUTTON-->

        <p id="no-msg" class="text-muted">No Messages Yet. Be the first!</p>
        <!--Some text is appended here via javascript.-->
    </div>
    <div class="card-footer text-muted text-right hidden " id="footer-send">
        <label for="name">Name:</label>
        <input class="form-control" placeholder="Message..." id="name">

        <button class="btn btn-primary btn-block" id="name-enter">Send</button>
    </div>
    <div class="card-footer text-muted text-right" id="footer-name">
        <textarea class="form-control" placeholder="Message..." id="chat-msg-box"></textarea>

        <button class="btn btn-primary btn-block" id="msg-send">Send</button>
    </div>
</div>

【问题讨论】:

  • 在代码 sn-p 中运行您的代码时,它似乎正在工作。您如何引用引导程序以及什么版本?
  • 4.0.0-beta3。我知道这是测试版,但我的另一个按钮工作正常,所以我担心这可能是我这边的问题。
  • 我已经编辑了这个问题,因为它使用的是引导程序 4。所以我将它编辑为 beta 3。但即使前端进行了小的更改,它似乎也能正常工作。也许其他一些样式会覆盖您的引导程序。检查相关属性

标签: html css twitter-bootstrap button


【解决方案1】:

将此添加到 javascript 文件表明该按钮确实被点击了。

您也可以在这里查看:https://codepen.io/anon/pen/bazLvp

document.getElementById('latest-msg').addEventListener('click', buttonClicked);

function buttonClicked() {
  console.log('the button was clicked');
}

【讨论】:

  • 我认为问题在于它没有注册为“点击”按钮。我现在正在使用事件侦听器,但它仅在我单击按钮底部(甚至在按钮下方一点)时才会注册
猜你喜欢
  • 2019-05-24
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多