css怎么绘制斜线

2020-07-23 07:10:37
使用单个标签,如何实现下图所示的斜线效果。也就是如何使用 CSS 画斜线?

我们假定我们的 HTML 结构如下:

<div></div>

法一、CSS3 旋转缩放

这里我们使用 伪元素 画出一条直线,然后绕 div 中心旋转 45度 ,再缩放一下就可以得到。

具体实现css代码:

div{  position:relative;  margin:50px auto;  width:100px;  height:100px;  box-sizing:border-box;  border:1px solid #333;    // background-color:#333;  line-height:120px;  text-indent:5px;}div::before{  content:"";  position:absolute;  left:0;  top:0;  width:100%;  height:50px;  box-sizing:border-box;  border-bottom:1px solid deeppink;  transform-origin:bottom center;  // transform:rotateZ(45deg) scale(1.414);  animation:slash 5s infinite ease;}@keyframes slash{  0%{    transform:rotateZ(0deg) scale(1);  }  30%{    transform:rotateZ(45deg) scale(1);  }  60%{    transform:rotateZ(45deg) scale(1.414);  }  100%{    transform:rotateZ(45deg) scale(1.414);  }}

法二、线性渐变实现

这种方法使用了背景的线性渐变实现,渐变背景很重要的一点是,虽然名字唤作渐变,但是也是可以画出实色而非渐变色。

我们选定线性渐变的方向为 45deg,依次将渐变色值设为:transparent -> deeppink -> deeppink ->transparent。

transparent 为透明色值。

就像这样简单的一句,即可实现斜线效果:

div{  background:    linear-gradient(45deg, transparent 49.5%, deeppink 49.5%, deeppink 50.5%, transparent 50.5%);}