网站首页 > 知识剖析 正文
问题
假设我们想给一个容器设置一层白色背景和一道半透明白色边框
html代码:
<body>
<div class="box1"></div>
</body>
一开始你可能想这么做
<style>
body{
background: black;
}
.box1{
width: 200px;
height: 200px;
/*看这里*/
border: 10px solid hsla(0, 0%, 100%, .5);
background: white;
}
</style>
但这样得到的效果是:
虽然得到了白色的背景,但半透明的边框去哪里了?
解决方案
尽管看起来有问题,但边框是实际存在的。默认情况下,背景会延伸到边框所在的区域下层,这一点很容易验证,我们只需要把边框属性中的solid改为dashed,就能验证,这里特地把边框颜色改为绿色,这样会使效果更明显
body{
background: black;
}
.box1{
width: 200px;
height: 200px;
border: 10px dashed hsla(120, 100%, 60%, .5);
background: white;
}
所以我们原本做的事情并没有让body的背景从半透明白色边框处透出来,而是在半透明白色边框处透出了这个容器自己的纯白色背景,这实际上得到的效果跟纯白色的边框看起来完全一样。
而这就是背景的工作原理。我们只能接受它并且向前看。好在我们可以通过backgound-clip属性来改变上述默认的行为所带来的不便。
这个属性的初始值是border-box,意思是背景会延伸到边框的外沿框,如果不希望背景侵入边框所在的范围,只需这么做即可
<style>
body{
background: black;
}
.box1{
width: 200px;
height: 200px;
border: 10px solid hsla(0, 0%, 100%, .5);
background: white;
background-clip: padding-box;
}
把background-clip的属性设置为padding-box,这样背景只会延伸到边框的内沿框,效果如下:
- 上一篇: ps抠出复杂背景半透明婚纱
- 下一篇: 背景透明,文字不透明的兼容处理
猜你喜欢
- 2024-11-19 CSS中的混合模式,制作高级特效的必备技巧
- 2024-11-19 19.HTML CSS边距、边框、填充和内容
- 2024-11-19 使用CSS实现图片的磨砂玻璃效果
- 2024-11-19 CSS 盒子模型详解
- 2024-11-19 CSS前端笔记-第二天
- 2024-11-19 38个不可错过的实用前端工具
- 2024-11-19 深入浅出超好用的 CSS 阴影技巧
- 2024-11-19 分享几个css实用技巧
- 2024-11-19 前端入门——css颜色和背景
- 2024-11-19 学前端怎能不知css系列-css初识02
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)