我有以下HTML代码:
<style type="text/css">
.submitbutton{margin-left:-2px;padding:1px}
</style>
...
<form>
...
<input class=submitbutton type=submit value="Create Listings" />
</form>
在Firefox中,输入按钮的填充比Chrome更多。
任何想法为什么?
更新:如果你想知道为什么我有负余量 - 那是因为在输入字段和输入按钮之间 - 存在太多空间。
答案 0 :(得分:67)
/* Remove button padding in FF */
button::-moz-focus-inner {
border:0;
padding:0;
}
您将在Chrome和Firefox中获得相同的按钮外观。
答案 1 :(得分:11)
即使您作为不同浏览器中的开发人员测试并看到按钮的不同,用户也不会。很容易专注于用户不会注意到的事情:用户可能有Firefox或其他IE或Chrome,但不是全部。用户很少会随着时间的推移切换浏览器,更不用说在他们之间切换并抱怨几个像素差异。
因此,如果您一次只考虑一个浏览器中的按钮和体验,并且如果它在该体验/浏览器中运行良好,那么就不必花费更多时间。而是转到下一步。
这并不能回答“为什么”,而是有人解释了这一点。
答案 2 :(得分:4)
表单元素的呈现方式不同(默认值),具体取决于操作系统和/或浏览器。如果您希望表单元素(输入字段,提交按钮等)在所有实例中看起来都相同,则必须使用边框,填充和边距显式设置它们。
答案 3 :(得分:1)
这里没有人提到的是Chrome重置了这些元素的CSS:
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="file"]::-webkit-file-upload-button,
button
所以无论你设置什么填充,据我所知,它将被Chrome覆盖。我尝试过使用!important
以及其他技术但仍然没有运气。如果有人对此有任何见解,我很想知道。
答案 4 :(得分:1)
尝试使用-webkit-box-sizing:content-box
,然后阅读有关盒子模型的内容。
答案 5 :(得分:1)
试试这个
/* Browser Firefox to match the Chrome */
#buttonid::-moz-focus-inner, .buttonclass::-moz-focus-inner, button::-moz-focus-inner {
padding: 0 !important;
border: 0 none !important;
}
答案 6 :(得分:0)
我现在尝试在同一时间修改高度和填充。
结果非常好。对于这两种浏览器(Linux中的FF和Chrome)来说似乎是正确的......例如我已经把:
.classname {
height:20px;
padding:4px;
}
也许这只是我的幸运日......不过你可以尝试一下。
答案 7 :(得分:0)
要在两个浏览器上获得相同的大小,您必须为所有CSS元素设置相同的初始值,例如重置。
这是我解决问题的方法: 把它放在你的css文件的开头
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td, a
{
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-top-width: 0px;
border-right-width-value: 0px;
border-bottom-width: 0px;
border-left-width-value: 0px;
}
现在您必须修改页面上的某些方面更改,但在所有浏览器上看起来几乎相同。