注: このコードの目的に焦点を合わせないでください。発生した問題を強調するための最小限の例にすぎません。
このプロパティを使用しているbox-shadow
と、要素とその影の間に 1 ピクセル (またはそれ以下) の余白が生じて、要素の側面に収まらないことがあります。これは、問題を提起するために使用する例ですtransform
(これが唯一の方法ではないと思います):
h1 {
width: 100px;
text-align: center;
margin: 25px 55px;
background: black;
box-shadow: 30px 0 0 black, -30px 0 0 black;
font-size: 24px;
line-height: 50px;
/* I use 0.5px to show the bug, I would use n% in real conditions */
transform: translate(0.5px, 0);
}
h1 a {
color: white;
text-decoration: none;
}
<h1><a href="#">Foo</a></h1>
何も表示されない場合は、フルスクリーンのスニペットを見て、ブラウザーのサイズを変更してみてください (Chrome と Firefox で問題が発生しました)。以下は、私が作成したいくつかのスクリーンショットと(明らかな)期待される結果を含む写真です。
誰もこの問題に直面しましたか?
ブラウザのように見えますが、これらのマージンを回避する回避策を見つけることはできますか?
編集
私は何か新しいことを発見しました: 片面にボックスの影を設定すると、Chrome を使用してギャップは発生しません (Firefox ではまだここにあります):
h1 {
width: 100px;
text-align: center;
margin: 25px 55px;
background: black;
box-shadow: 30px 0 0 black, -30px 0 0 black;
font-size: 24px;
line-height: 50px;
/* I use 0.5px to show the bug, I would use n% in real conditions */
transform: translate(0.5px, 20px);
}
h1 a {
color: white;
text-decoration: none;
}
h1:nth-child(2) {
box-shadow: 30px 0 0 black;
}
h1:nth-child(3) {
box-shadow: -30px 0 0 black;
}
<h1><a href="#">Foo</a></h1>
<h1><a href="#">Foo</a></h1>
<h1><a href="#">Foo</a></h1>