注意:不要关注这段代码的目的,它只是一个极简的例子来突出遇到的问题。
当我使用该box-shadow
属性时,它有时不适合元素的侧面,导致元素与其阴影之间的边距为 1px(或更少)。这是一个示例,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>