css - 如何剪切一部分div

标签 css

我尽量让您大致了解我的问题。假设我的页面上有一个覆盖层 divz-index: 99;background-color: rgba(0,0,0,0.5)。然后我想删除覆盖 div 的一部分,例如 top: 50px;left: 200px; 中的 100 x 100px

我所说的删除是指排除覆盖 div 的一部分以使该部分可见并从中删除 background-color

我该怎么做?

最佳答案

我不确定您是否可以像您描述的那样删除部分背景。相反,您的叠加层可以具有透明背景,并且可以包含四个蓝色背景 div它在您想要的孔周围形成一个框架。

这是执行此操作的一些代码:

body {margin: 0; padding: 0}
#main {width: 500px; height: 200px; background: yellow;}
.overlay {background: rgba(0,0,0,0.5); position:absolute;}
#overlay-container { width: 500px; height: 200px; z-index: 99; position: absolute;}
#top {width: 100%; height: 50px}
#left {top:50px; width: 200px; height: 100px}
#right {left: 300px; width: 200px; height: 100px}
#bottom {left: -300px; top: 100px; width: 500px; height: 50px}
<div id="main"/>
<div id="overlay-container">
    <div class="overlay" id="top"/>
    <div class="overlay" id="left"/>
    <div class="overlay" id="right"/>
    <div class="overlay" id="bottom"/>
</div>

你或许可以去掉 overlay-container并稍微简化一下。

对于叠加层,您可以只使用 <div>具有透明背景和半透明边框。这是另一个例子:

body { margin: 0; padding: 0; }
#background {
    width:500px;
    height:200px;
    background: yellow;
}
#overlay {
    border-color: rgba(0,0,0,0.5);
    border-style: solid;
    border-top-width: 50px;
    border-left-width: 200px;
    border-right-width: 200px;
    border-bottom-width: 50px;
    position: absolute;
    top: 0;
    width: 100px;
    height: 100px;
    z-index: 99;
}
<body>
    <div id="background">some content</div>
    <div id="overlay"></div>
</body>

关于css - 如何剪切一部分div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319780/

相关文章:

html - 增加 Bootstrap 导航栏搜索表单宽度

javascript - 根据给定索引突出显示字符串

javascript - 制作响应式网格

css - z-index 普通 div 和 flex div

html - Bootstrap 4 导航侧不平滑/生涩/毛刺

css - 菜单侧列与主要内容高度相同的两列 CSS 布局?

html - 在某些字符上显示 Vim omnicomplete 而不是 Ctrl-X Ctrl-O?

CSS 媒体查询不起作用?

css - 使用 CSS 媒体打印,我可以以英寸为单位指定元素的高度属性吗?

html - 维基百科离开网站图片