【问题标题】:Prevent <button> from shifting during click in IE防止 <button> 在 IE 中单击期间移动
【发布时间】:2012-05-05 13:07:44
【问题描述】:

当您在页面中有一个简单的元素并在 IE8/9 中单击它(单击过程中按住鼠标查看效果)时,按钮会向下和向右移动一点。

我假设这是默认 IE 样式的一部分。有没有办法阻止这种行为?

http://jsfiddle.net/tmcconechy/hqm59/

【问题讨论】:

  • 在我看来,这实际上并不能解决您的问题,所以我将其作为评论发布。查看stackoverflow.com/q/5466906/669611。他们只是完全取消了
  • 不,只是一个小细节肯定不会破坏交易,因为我的真实按钮有自己的点击样式,我想拥有它并使其在浏览器中看起来相同。谢谢

标签: html css internet-explorer


【解决方案1】:

您可以对按钮应用一些样式。 按钮{边距:0px;填充:0px;}

【讨论】:

  • 填充:0;在 Firefox 中为我修复它所需要的一切
【解决方案2】:

您可以在 IE 按钮中停止文本移动:

button:active span, button:focus span {
    position:relative;
    top: 0;
    left: 0;
}

<button><span>no move</span></button>

http://jsfiddle.net/dQVA7/

【讨论】:

  • 这里的关键是针对按钮的子元素,而不是按钮本身。这是暗示的,但没有在答案中明确说明。您也可以将其应用于伪元素:button:active::before 等。
  • @gfullam 谢谢老兄!伴随答案的那一点信息对我有帮助。
  • 正如@teefars 在他的回答中指出的那样,您似乎只需要position: relative,不需要设置顶部/左侧,至少在 IE11 中是这样
【解决方案3】:

把你的文字放在&lt;span&gt;position:relative里面,它会修复的。

button span{
    position: relative;
}

不需要topleft定义。

【讨论】:

  • 这应该是公认的答案,因为它是最小的解决方案
【解决方案4】:

如果您不介意使用 JavaScript,显然这可以解决问题:

$(document).on('mousedown', 'button, input[type="button"], input[type="submit"]', function(e) {
  e.preventDefault();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2022-07-15
    • 2018-09-15
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多