我发现了很多与我所问的类似的帖子,并且已经为此工作了几个小时,最后决定我应该寻求一些外部建议 :)。
我正在尝试使用 box-shadow 遮蔽 div 的 3 个面.
原文由 Otis Wright 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发现了很多与我所问的类似的帖子,并且已经为此工作了几个小时,最后决定我应该寻求一些外部建议 :)。
我正在尝试使用 box-shadow 遮蔽 div 的 3 个面.
原文由 Otis Wright 发布,翻译遵循 CC BY-SA 4.0 许可协议
clip-path
现在(2020 年)在所有主流浏览器中均受支持。
如果您愿意使用只有 部分支持 的实验技术,您可以使用 clip path
属性。
这将为您提供我相信您想要的效果:顶部、左侧和底部边缘的正常框阴影和右侧边缘的干净截止。针对此问题的许多其他 SO 解决方案会导致阴影在接近没有阴影的边缘时“消散”。
在您的情况下,您将使用 clip-path: inset(px px px px);其中像素值是从相关边缘计算的(见下文)。
#container {
box-shadow: 0 0 5px rgba(0,0,0,0.8);
clip-path: inset(-5px 0px -5px -5px);
}
这会将有问题的 div 剪辑在:
请注意,像素值之间不需要逗号。
div 的大小可以是灵活的。
原文由 Luke 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答914 阅读✓ 已解决
3 回答842 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答882 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
我认为你有两个选择:
虽然这样你不会在顶部和底部有相同的阴影大小。
然后你必须调整你想要的尺寸。
在这里,有一个 jsfiddle:http: //jsfiddle.net/EwgKF/19/