width や height を指定せず、padding や内部の文字列で大きさを確保するボタン(<button> や <input type="button">)では、IE/Chrome と比べて Firefox のボタンサイズが大きくなる。
文字の幅は、同じフォントを指定してもブラウザによって異なるのが普通だが(レンダリングエンジンが異なるため)、Firefox のみ明らかに大きくなる。
[問題になる CSS の例]
[開発者ツールの画面キャプチャ]
※ Firefox のボタンサイズが、縦方向 2px、横方向 6px 大きい。
Firefox はボタンフォーカス時の点線の幅と padding が確保されているため、他のブラウザより大きくなるのだとか。
これ →
[ボタンフォーカスの点線を消す CSS]
[Firebug の画面キャプチャ]
ボタンフォーカスの点線を消したくない場合、margin を工夫することで大きさを合わせることが可能。
ただし、最初にも書いたが、ブラウザによる文字の幅の差はどうすることもできないので、ボタンの大きさ完全に一致させたい場合は、button の width を指定するしかない。
文字の幅は、同じフォントを指定してもブラウザによって異なるのが普通だが(レンダリングエンジンが異なるため)、Firefox のみ明らかに大きくなる。
[問題になる CSS の例]
button {
padding: 5px;
border: 1px solid lime;
letter-spacing: 0px;
/* ブラウザ間の差が少ないメイリオを使用 */
font: 15px/22px Meiryo;
cursor: pointer;
}
[プレビュー]
IE | Chrome | Firefox (Firebug) |
---|---|---|
原因と対処法
困った時の stackoverflow。- html - Why is Firefox button larger? - Stack Overflow
- html - CSS: Size of buttons in Chrome is different than Firefox - Stack Overflow
Firefox はボタンフォーカス時の点線の幅と padding が確保されているため、他のブラウザより大きくなるのだとか。
これ →
[ボタンフォーカスの点線を消す CSS]
button::-moz-focus-inner {
padding: 0;
border: 0;
}
/* input[type=button] なども同様に指定可能 */
[プレビュー]
ボタンフォーカスの点線を消したくない場合、margin を工夫することで大きさを合わせることが可能。
button::-moz-focus-inner {
padding: 0;
margin: -1px; /* 点線の幅分のマイナスマージン */
}
ただし、最初にも書いたが、ブラウザによる文字の幅の差はどうすることもできないので、ボタンの大きさ完全に一致させたい場合は、button の width を指定するしかない。
検証環境
- Windows 7 64bit
- Internet Explorer 11
- Firefox 42.0
- Chrome 48.0.2564.8
0 件のコメント:
コメントを投稿