81

次のコード例を参照してください:http://jsfiddle.net/Z2BMK/

Chrome/IE8は次のようになります

ここに画像の説明を入力してください

Firefoxは次のようになります

ここに画像の説明を入力してください

私のCSSは

button {
    padding:0;
    background:#080;
    color:white;
    border:solid 2px;
    border-color: #0c0 #030 #030 #0c0;
    margin:0;
}

コードサンプルを変更して、両方のブラウザでボタンを同じにする方法を教えてください。JavaScriptベースのハイパーリンクはキーボードのスペースバーでは機能せず、URLが必要であるため、JavaScriptベースのハイパーリンクを使用したくありませんhref。これは物事を処理するためのクリーンな方法ではありません。

Firefox13以降の私の解決策

button::-moz-focus-inner { margin: -1px; padding: 0; border-width: 1px; }

4

3 に答える 3

164

これを追加:

button::-moz-focus-inner {
    padding: 0;
    border: 0
}

http://jsfiddle.net/thirtydot/Z2BMK/1/

上記のルールを含めることborderは、ボタンが両方のブラウザで同じように見えるために必要ですが、ボタンがactiveFirefoxにある場合は点線のアウトラインも削除されます。多くの開発者は、この点線のアウトラインを取り除き、オプションで、より視覚的にわかりやすいものに置き換えます。

于 2011-04-01T19:52:23.393 に答える
8

入力要素にも修正するには、

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

シンプルで完璧です!

于 2012-11-16T10:34:46.910 に答える
0

@thirtydotの回答の修正バージョン:

button:: {
    padding: 0px;
    border: 0px;
}

button::-moz-focus-inner {
    padding: 0px;
    border: 0px;
}

Firefox 87について:

  • buttoninbutton::-moz-focus-innerをクラスにすることはできません。(例.mybutton::-moz-focus-innerは機能しません)

  • スタイルも存在する必要がありbutton { padding:0px; border: 0px; }ます(このスタイルはクラスごとに指定できます)。

于 2021-04-14T00:05:13.743 に答える