私は次のHTMLコードを持っています:
<style type="text/css">
.submitbutton{margin-left:-2px;padding:1px}
</style>
...
<form>
...
<input class=submitbutton type=submit value="Create Listings" />
</form>
Firefoxでは、入力ボタンにChromeよりも多くのパディングがあります。
なぜ何かアイデアはありますか?
更新:なぜ私が負のマージンを持っているのか疑問に思っているなら-それは入力フィールドと入力ボタンの間に-スペースが多すぎるからです。
/* Remove button padding in FF */
button::-moz-focus-inner {
border:0;
padding:0;
}
ChromeとFirefoxでも同じボタンの外観が得られます。
開発者がさまざまなブラウザでテストし、ボタンの違いを確認したとしても、ユーザーはそうではありません。ユーザーが気付かないことに集中するのは簡単すぎます。ユーザーはFirefoxまたはIEまたはChromeを使用している可能性がありますが、すべてではありません。ユーザーがブラウザを切り替えることはめったにありません。時間は言うまでもなく、それらを切り替えて、数ピクセルの違いについて文句を言います。
したがって、一度に1つのブラウザーでのボタンとエクスペリエンスを検討し、そのエクスペリエンス/ブラウザーでうまく機能する場合は、わざわざ時間を費やさないでください。代わりに、次の手順に進みます。
これは「なぜ」とは答えませんが、他の誰かがそれを説明しました。
フォーム要素は、OSやブラウザに応じて(デフォルトとして)異なってレンダリングされます。フォーム要素(入力フィールド、送信ボタンなど)をすべてのインスタンスで同じように見せたい場合は、境界線、パディング、マージンを使用して明示的にスタイルを設定する必要があります。
これを試して
/* 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;
}
ここで誰も言及していないのは、Chromeがこれらの要素のCSSをリセットするということです。
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="file"]::-webkit-file-upload-button,
button
したがって、パディングを何に設定しても、私が知る限り、Chromeによって上書きされます。 !important
や他のテクニックを使ってみましたが、まだうまくいきません。誰かがこれについて何か洞察を持っているなら、私は知りたいです。
-webkit-box-sizing:content-box
を使用してから、ボックスモデルについて読んでください。
両方のブラウザで同じサイズを取得するには、リセットなど、すべての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;
}
ここで、ページのいくつかのアスペクトの変更を修正する必要がありますが、すべてのブラウザーでほぼ同じように見えます。
高さとパディングを同時に変更しようとしました。
結果はかなり良いです。両方のブラウザ(FFとChrome Linuxの場合))で正しいようです...たとえば、私は次のように述べています。
.classname {
height:20px;
padding:4px;
}
多分それは私の幸運な日です...しかしあなたはそれを試すことができます。