天遇到一個問題: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小時內與您取得聯系。