ホームページ > ウェブフロントエンド > CSSチュートリアル > Chrome と Safari でボタンの下部に 1 ピクセルの隙間があるのはなぜですか?

Chrome と Safari でボタンの下部に 1 ピクセルの隙間があるのはなぜですか?

Patricia Arquette
リリース: 2024-11-03 10:29:03
オリジナル
275 人が閲覧しました

Why Does My Button Have a 1px Gap at the Bottom in Chrome and Safari?

ブラウザ間でのボタンのレンダリングにおけるサブピクセルの不一致

ボタンが埋め込まれた入力フィールドで構成されるコンポーネントのレンダリングにおける不一致の原因は、次のとおりです。ブラウザ間でのサブピクセル計算の違い。

問題の説明

Firefox ではボタンが 100% の高さと表示される境界線で正しくレンダリングされますが、Chrome と Safari では 1 ピクセルが導入されます。底の隙間。この問題は、Chrome がマージンを整数に丸めるため、ボタンの下マージンが誤って計算されるために発生します。

解決策

このブラウザ間のレンダリングの不均衡を解決するには、ボタンから透明枠までのマージンの使用量。ボタンの境界線を 1px に設定し、background-clip:padding-box プロパティを適用して、透明度が背景に影響を与えないようにします。さらに、Chrome のズーム関連のバグに対処するために、em ベースのパディングを固定ピクセル値に置き換えます。

最終コード スニペット

<code class="css">.wrapper {
  position: relative;
  width: 60%;
  margin: 1em;
  background-color: #ccc;
}

input {
  border: 1px solid red;
  width: 100%;
  background-color: limegreen;
  line-height: 3em;
  padding: 10px;
}

button {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  border: 1px solid transparent;
  width: 7em;
  margin: 0px;
  background-clip: padding-box;
  box-shadow: inset 0px 0px 0px 2px black;
}</code>
ログイン後にコピー

以上がChrome と Safari でボタンの下部に 1 ピクセルの隙間があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート