单标签实现边框的几种方法

基础代码

<div></div>
div{
  position:relative;
  width:200px;
  height:60px;
  line-height:60px;
  margin:20px;
  background:#ddd;
  text-align:center;
}

方法1: border

最普通的方法,border 实现 :

div{
  border-left:5px solid deeppink;
}

方法2: 伪元素

一个标签,算上 before 与 after 伪元素,其实算是有三个标签,这也是很多单标签作图的基础,本题中,使用伪元素可以轻易完成。

div::after{
  content:"";
  width:5px;
  height:100%;
  position:absolute;
  top:0;
  left:0;
  background:deeppink;
}

方法3: box-shadow

盒阴影 box-shadow 大部分人都只是用了生成阴影,其实阴影可以有多重阴影,阴影不可以不虚化,这就需要去了解一下 box-shaodw 的每一个参数具体作用。

div{
  box-shadow:-5px 0 0 0 deeppink;
}

方法4; 内 box-shadow

盒阴影还有一个参数 inset ,用于设置内阴影,也可以完成:

div{
  box-shadow: 5px 0px 0 0 deeppink inset;
}

方法5: drop-shadow

drop-shadow 是 CSS3 新增滤镜 filter 中的其中一个滤镜,也可以生成阴影,不过它的数值参数个数只有 3 个,比之 box-shadow 少一个。

div{
  filter: drop-shadow(-5px 0 0 deeppink);
}

方法6: 渐变 linearGradient

灵活使用 CSS3 的渐变可以完成大量想不到的图形,CSS3 的渐变分为线性渐变和径向渐变,本题使用线性渐变,可以轻易解题:

div{
  background-image: linear-gradient(90deg, deeppink 0px, deeppink 5px, transparent 5px);
}

方法7: 轮廓 outline

这个用的比较少,outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。这个方法算是下下之选。

div{
  height:50px;
  outline:5px solid deeppink;
}
div::after{
  content:"";
  position:absolute;
  top:-5px;
  bottom:-5px;
  right:-5px;
  left:0;
  background:#ddd;
}

方法8: 滚动条

div{
  width:205px;
  background:deeppink;
  overflow-y:scroll;
}
div::-webkit-scrollbar{
  width: 200px;
  background-color:#ddd;
}

抛开实用性,仅仅是模拟出这个样式的话,这个方法真的让人眼前一亮。

参考资料

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress