我有一个弹出窗口,我想给它一个透明的边框。我设置了这些属性:
li.sub-nav ul.megamenu {
position: absolute;
left: 0;
margin-top: 10px;
z-index: 100;
padding-top: 3px;
-moz-background-clip: border; /* Firefox 3.6 */
-webkit-background-clip: border; /* Safari 4? Chrome 6? */
background-clip: border-box;
}
.nav-top-container .megamenu {
background: #005525;
background: rgba(0, 85, 37, .98);
border-top: 1px solid #227b33;
border-bottom: #005525;
border-bottom:8px solid rgba(0, 85, 37, .98);
}
我根据this article添加了background-clip
属性,我也尝试将其设置为content
和padding
,但它无效。
答案 0 :(得分:2)
在padding
上使用background-clip
,因为它是距边框最近的盒子模型。默认值为border
,这会导致背景位于透明边框后面。
body {
background: yellow;
}
div {
padding: 30px;
background-color: white;
border: 15px solid rgba(255,0,0,0.5);
-moz-background-clip: padding;
-webkit-background-clip: padding;
background-clip: padding-box;
}

<div></div>
&#13;
答案 1 :(得分:1)
正如我在对@LGSon的评论中指出的那样,你感到沮丧的问题是元素的background
延伸到边界区域。一个简单的解决方法是将该背景应用于嵌套元素,如下例所示:
https://jsfiddle.net/yqx7abd8/
body {
background: url(http://lorempixel.com/800/800/city/1) center / cover;
}
.border {
margin: 30px;
border: 15px solid rgba(255,0,0,0.3);
}
.content {
background: #fff;
padding: 30px;
}
<div class="border">
<div class="content">
<p>
My Content
</p>
</div>
</div>