不断更新,不断更新,不断更新,重要的事情说三遍。
假设我们的单标签是一个 p
:
<p></p>
定义如下通用CSS
:
p{ position:relative; width:200px; height:60px; background:#ddd; }
这个应该是最最最容易想到的了
p{ border-left:5px solid deeppink; }
一个标签,算上 before
与 after
伪元素,其实算是有三个标签,这也是很多单标签作图的基础,本题中,使用伪元素可以轻易完成。
p::after{ content:""; width:5px; height:60px; position:absolute; top:0; left:0; background:deeppink; }
盒阴影 box-shadow
大部分人都只是用了生成阴影,其实阴影可以有多重阴影,阴影不可以不虚化,这就需要去了解一下 box-shaodw
的每一个参数具体作用。使用 box-shaodw
解题
p{ box-shadow:-5px 0px 0 0 deeppink; }
盒阴影还有一个参数 inset
,用于设置内阴影,也可以完成:
p{ box-shadow:inset 5px 0px 0 0 deeppink; }
drop-shadow
是 CSS3 新增滤镜 filter
中的其中一个滤镜,也可以生成阴影,不过它的数值参数个数只有 3 个,比之 box-shadow 少一个。
p{ filter:drop-shadow(-5px 0 0 deeppink); }
灵活使用 CSS3 的渐变可以完成大量想不到的图形,CSS3 的渐变分为线性渐变和径向渐变,本题使用线性渐变,可以轻易解题:
p{ background-image:linear-gradient(90deg, deeppink 0px, deeppink 5px, transparent 5px); }
这个用的比较少,outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。这个方法算是下下之选。
p{ height:50px; outline:5px solid deeppink; } p::after{ position:absolute; content:""; top:-5px; bottom:-5px; right:-5px; left:0; background:#ddd; }
这个方法由 小火柴的蓝色理想 提供,通过改变滚动条样式实现:
p{ width:205px; background:deeppink; overflow-y:scroll; } p::-webkit-scrollbar{ width: 200px; background-color:#ddd; }
抛开实用性,仅仅是模拟出这个样式的话,这个方法真的让人眼前一亮。
上述就是想到的 8 种方法,不排除有没想到的,希望有其他的方法可以在评论中提出,具体 8 种实现可以戳这里看看:
codepen-单标签左边竖条的实现方式