天遇到一个问题:div边框和背景色随主题色变化,边框和字体不透明,背景半透明(如下图所示)
设计图
在网上搜索解决办法发现都是说使用rgba,但是另外一个问题就来了,背景和边框的颜色就没办法改变了,所以只好自己想办法。突发奇想使用伪类完美解决了问题,话不多说,上代码(此处样式部分使用了scss,不懂的请自行百度)
<!-- html代码 -->
<div class="box">
内容
</div>
/* scss代码*/
$primary:#2CD334;
.box {
position: relative;
border: 1px solid $primary;
width:100px;
height: 100px;
border-radius: 12px;
&:after {
content: "";
position: absolute;
width: 100%;
height: 100%;
background: $primary;
opacity: 0.1;
top: 0;
left: 0;
}
}
实际效果
背景和框架完成了,内容就自己解决啦~
order 盒子边框
复合属性。设置对象边框的特性。
盒子边框三要素:
① 边框粗细
② 边框样式
③ 边框颜色
语法:border: border-width | border-style | border-color ;
边框四边的粗细、样式、颜色,以及上下左右每个位置的样式属性都是可以单独调整的。
边框的颜色不是必要的,如果不指定颜色,默认颜色为黑色,但必须为盒子指定宽高。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div{
width: 500px;
height: 50px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
使用 border-style 可为盒子边框设置样式,以下示例为实线
/* CSS代码 */
div{
width: 500px;
height: 50px;
border-style: solid;
}
效果:
示例 CSS 代码
如果需要设置不同方向的样式属性,可以写在一句 CSS 代码里,比如说下面这段代码,上下实线,左右虚线。
/* CSS代码 */
div{
width: 500px;
height: 50px;
border-style: solid dashed;
}
效果:
属性值解释none无轮廓。 border-color将被忽略,border-width计算值为0,除非边框轮廓为图像,即border-image。hidden隐藏边框。IE7及以下尚不支持dotted点状轮廓。IE6下显示为dashed效果dashed虚线轮廓solid实线轮廓double双线轮廓。两条单线与其间隔的和等于指定的border-width值groove3D凹槽轮廓ridge3D凸槽轮廓inset3D凹边轮廓outset3D凸边轮廓
使用 border-width 可为盒子边框设置粗细,以下示例边框为 5px 粗细
/* CSS代码 */
div{
width: 500px;
height: 50px;
border-style: solid;
border-width: 5px;
}
效果
示例 CSS 代码
如果需要设置不同方向的边框粗细,可以写在一句 CSS 代码里。
比如说下面这段代码,上下2px,右2px,左5px。
/* CSS代码 */
div{
width: 500px;
height: 50px;
border-style: solid;
border-width:2px 2px 2px 5px;
}
效果:
可直接输入
颜色的英文名称
rgb值
十六进制
使用 border-color 可为盒子边框设置颜色,以下示例边框颜色为红色。
/* CSS代码 */
div{
width: 500px;
height: 50px;
border-style: solid;
border-width:2px 2px 2px 5px;
border-color: red;
}
效果:
示例 CSS 代码
上面有两个示例讲述如何设置不同方向的属性,border-color 也是相同使用方法,此处就不做示例了。
如果你需要同时设置盒子的粗细、样式、颜色,那么你可以将他们的样式表写在同一行代码里。
例如:
/* CSS代码 */
div{
border-top: 5px solid red;
}
这段代码指定了上边框的三个属性:粗细、样式、颜色
border-top 包含了:
其他同理
先来看一个示例
/* CSS代码 */
div{
width: 100px;
height: 100px;
border-top: 50px solid red;
border-right: 50px solid blue;
border-bottom: 50px solid green;
border-left: 50px solid pink;
}
效果:
细心的你,一定发现了 border 的边框四条边交接处是斜角。
此刻我们把盒子的宽高设置为 0
/* CSS代码 */
div{
width: 0;
height: 0;
border-top: 50px solid red;
border-right: 50px solid blue;
border-bottom: 50px solid green;
border-left: 50px solid pink;
}
效果:
是不是完完全全像四个三角形一样。
我们只需要把上边和左右两边的三角形隐藏起来,它不就是一个三角形了。
为 border-color 指定 transparent 值,使盒子边框颜色变透明
/* CSS代码 */
div{
width: 0;
height: 0;
border-top: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 50px solid green;
border-left: 50px solid transparent;
}
效果:
把另外三条边透明之后,就只剩一个三角形了。
完
部分资料引用自:
透明边框
在元素上设置透明边框会在边框下边显示元素自己的背景.
在下面的例子中,我们使用rgba将边框设置为透明,但实际上它们显示为纯灰色.
css代码:
div.first{ border:20px solid rgba(0,0,0,0); width:200px;position:absolute; top:50px; left:50px; background-color:red;}
效果如下:
下面做下改变将rgba(0,0,0,1),效果如下:
rgba(0,0,0,0.3)效果如下:
通过将background-clip设置为padding-clip,边框将变为透明.
div.second{border:20px solid rgba(0,0,0,0.5); -webkit-background-clip:padding-box; background-clip:padding-box; width:100%;position:absolute; background-color:green; }
效果如下:
二 层叠的背景图
css3中支持同时使用多个背景图片.
通过","逗号分隔可以设置多个背景图.第一个图像将出现在顶部,最后一个在底部.
在下面的例子中,我们使用两个背景图,并指定背景图的位置.
css代码:
div.third{width:400px; height:300px; background-img:url("background-iamge.jpg"),url("before.jpg"); background-position:right top,left bottom;
background-repeat:no-repeat;}
我们可以通过使用background简写属性:
background:url("background-image.jpg") right top no-repeat,url("before.jpg") left bottom no-repeat;
三 opacity属性
css中的opacity属性支持为元素增加一个不透明度.
下面对同一张图片设置多种不同的不透明度.
css代码:
.img1{ opacity:1;}
.img2{ opacity:0.5;}
.img3{ opacity:.25;}
效果如下:
opacity的值介于(0.0~1.0)之间.0.0表示完全透明,1.0表示完全不透明
要让opacity兼容所有的ie版本,要使用:filter:alpha(opacity=x)以及opacity属性.x可以取值:0~100.
x设置为0,表示完全透明,1表示完全不透明.
下边的例子中,设置元素的透明度为20%;
格式如下:
filter:alpha(opacity=20);
opacity:0.2;
alpha过滤器是一个仅限Microsoft的属性,不是标准的css属性.
*请认真填写需求信息,我们会在24小时内与您取得联系。