如何在嵌套div覆盖父元素时隐藏父元素被遮挡的边框
实现方案
你可以通过统一背景定位基准、遮盖父元素溢出边框的方式实现需求,修正后核心逻辑如下:
- 移除嵌套div继承的边框属性,避免多余边框显示
- 给嵌套div配置和全局背景完全一致的参数,同时统一使用
background-attachment: fixed让所有背景都相对于视口定位,不管元素位置、尺寸如何,背景图案都能完全对齐,滚动、窗口缩放也不会错位 - 给嵌套div设置高于父元素的层级,确保可以覆盖父元素的边框区域
修正后完整CSS代码
.background { height: 100%; background-size: 24px 24px; background-color: midnightblue; background-image: -webkit-repeating-radial-gradient(center center, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6) 1px, transparent 2px, transparent 100%); min-height: 100vh; background-attachment: fixed; width: 100vw; position: relative; } .block { height: 300px; width: 400px; position: absolute; left: 29%; top: 29%; border: solid 2px white; border-radius: 16px; margin-left: 100px; background: transparent; } .nested { height: 200px; left: 25%; top: 20%; border: none; background-size: 24px 24px; background-color: midnightblue; background-image: -webkit-repeating-radial-gradient(center center, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6) 1px, transparent 2px, transparent 100%); background-attachment: fixed; z-index: 2; }
原代码问题说明
你之前的尝试没有给嵌套元素添加匹配的背景配置,也没有移除嵌套元素继承的边框,同时全局背景使用background-attachment: scroll会导致背景相对于父元素定位,嵌套元素的背景自然无法和全局对齐,统一改为fixed基准后就可以解决对齐问题。
内容的提问来源于stack exchange,提问作者MagicMark82
相关产品推荐
相关产品推荐

