Css 删除Firefox中的额外按钮间距/填充
请参见以下代码示例: Chrome/IE8看起来像这样 Firefox看起来像这样 我的CSS是Css 删除Firefox中的额外按钮间距/填充,css,firefox,button,spacing,Css,Firefox,Button,Spacing,请参见以下代码示例: Chrome/IE8看起来像这样 Firefox看起来像这样 我的CSS是 button { padding:0; background:#080; color:white; border:solid 2px; border-color: #0c0 #030 #030 #0c0; margin:0; } 如何更改代码示例以使两种浏览器中的按钮相同?我不想使用基于JavaScript的超链接,因为它们不适用于键盘上的空格键
button {
padding:0;
background:#080;
color:white;
border:solid 2px;
border-color: #0c0 #030 #030 #0c0;
margin:0;
}
如何更改代码示例以使两种浏览器中的按钮相同?我不想使用基于JavaScript的超链接,因为它们不适用于键盘上的空格键,而且它必须有href
URL,这不是一种干净的处理方式
我的解决方案,从Firefox13开始
按钮::-moz焦点内部{margin:-1px;padding:0;边框宽度:1px;}
添加以下内容:
button::-moz-focus-inner {
padding: 0;
border: 0
}
包含上面的
边框
规则对于两种浏览器中的按钮看起来都一样是必要的,但是当Firefox中的按钮处于活动状态时,它也会删除虚线轮廓。许多开发人员摆脱了这种虚线轮廓,可以选择用更直观的东西来代替它。要在输入元素上修复它,还可以添加
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner
简单就是完美 对@thirtydot答案的更正版本:
button:: {
padding: 0px;
border: 0px;
}
button::-moz-focus-inner {
padding: 0px;
border: 0px;
}
关于Firefox 87:
按钮中的按钮::-moz focus internal
不能是类。(例如,.mybutton::-moz焦点内部
不工作)
- 还必须存在
按钮{padding:0px;border:0px;}
样式(可以为每个类提供此样式)
要在Firefox中使用Chrome风格的聚焦光晕,请使用按钮{background:/*somethine here*/}按钮:聚焦{-moz-box shadow:0 0px 3px#C80;}
。这弥补了没有虚线的缺陷,并提供了我所追求的浏览器一致性。这正是我所需要的。谢谢要在输入元素上修复它,请添加input[type=“reset”]::-moz焦点内部,input[type=“button”]:-moz焦点内部,input[type=“submit”]:-moz焦点内部,input[type=“file”]>input[type=“button”]:-moz焦点内部
Awesome!非常感谢。这有帮助@Stefan它似乎工作正常(除了文件
css)。很抱歉,在我尝试使用的页面上,一定有冲突的css。谢谢。您对该解决方案的浏览器兼容性有任何了解吗?input[type=“file”]>input[type=“button”]:-moz-focus-internal
是否多余,因为您已经添加了input[type=“button”]:-moz-focus-internal
?你知道吗?@GeorgeBailey:浏览器兼容性是Firefox 3+,此代码不会影响任何其他浏览器。@GeorgeBailey我认为此回答是对评论的回应。你为什么添加边距:-1px
?它是否以某种方式连接到边框:2px
?请参阅我的编辑。默认情况下,-moz focus-internal
的边框宽度
是1px
,因此将边框宽度
写入代码是多余的,但它可以更清楚地说明发生了什么。这可能也有助于将来的打样。为了回答您的问题,Firefox中的边框宽度是造成差异的原因,添加边距:-1px
是比我以前的解决方案更兼容的解决方案。我认为公认的答案在视觉上是等效的,但比您的解决方案更好。Accepted answer删除FF添加的内容,并使所有浏览器中的内容呈现方式相同。您的解决方案在其位置上保留由FF添加的额外边框,并使用边距:-1px
隐藏两像素边框中的一个像素。这太复杂了。如果:1)渲染引擎中出现错误(这种情况会发生),2)边框颜色不同,3)放大,则会中断。为了说明您的解决方案可能存在的问题,我准备了一把小提琴:。请放大并注意出现了一个红色边框。我可以看到您回答的唯一优点是保留FF的“按钮激活时的虚线轮廓”功能是的,这正是使我的解决方案更好的原因。应该有东西告诉用户他们的键盘在哪里。