单标签实现方式:
假设我们的单标签是一个 div
:
<div></div>
定义如下通用CSS
:
div{
position: relative;
width: 200px;
height: 60px;
background: #ddd;
}
法一:border
div{
border-left: 5px solid #1cbbb4;
}
法二:使用伪元素
div::after{
content: "";
width: 5px;
height: 60px;
position: absolute;
top: 0;
left: 0;
background: #1cbbb4;
}
法三:外 box-shadow
盒阴影 box-shadow
大部分人都只是用了生成阴影,其实阴影可以有多重阴影、单侧阴影、阴影不可以不虚化,这就需要去了解一下 box-shaodw
的每一个参数具体作用
div{
box-shadow: -5px 0px 0 0 #1cbbb4;
}
法四:内 box-shadow
盒阴影还有一个参数 inset
,用于设置内阴影,也可以完成:
div{
box-shadow: inset 5px 0px 0 0 #1cbbb4;
}
法五:drop-shadow
drop-shadow
是 CSS3 新增滤镜 filter
中的其中一个滤镜,也可以生成阴影,不过它的数值参数个数只有 3 个,比之 box-shadow 少一个
div{
filter: drop-shadow(-5px 0 0 #1cbbb4);
}
法六:渐变 linearGradient
灵活使用 CSS3 的渐变可以完成大量想不到的图形,CSS3 的渐变简单而言分为线性渐变和径向渐变,使用线性渐变实现:
div{
background-image: linear-gradient(90deg, #1cbbb4 0px, #1cbbb4 5px, transparent 5px);
}
其实,CSS3 渐变远不止线性渐变和径向渐变,细分下来,还有重复线性渐变(
repeating-linear-gradient
)和重复径向渐变(repeating-radial-gradient
)以及已经被最新版本 Chrome 支持的圆锥渐变(conical-gradient),感兴趣可以自行去学习一下。
法七:轮廓 outline
这个用的比较少,outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。这个方法算是下下之选。
div{
height: 50px;
outline: 5px solid #1cbbb4;
}
div::after{
position: absolute;
content: "";
top: -5px;
bottom: -5px;
right: -5px;
left: 0;
background: #ccc;
}
法八、滚动条
这个方法由 小火柴的蓝色理想 提供,通过改变滚动条样式实现:
div{
width: 205px;
background: #1cbbb4;
overflow-y: scroll;
}
div::-webkit-scrollbar{
width: 200px;
background-color: #ccc;
}
抛开实用性,仅仅是模拟出这个样式的话,这个方法真的让人眼前一亮。
上述就是想到的 8 种方法,不排除有没想到的,希望有其他的方法可以在评论中提出,具体 8 种实现可以戳这里看看:
codepen-单标签左边竖条的实现方式