动态梯形的vs进度模型怎样实现?

类似下面这种能实现百分比对比效果的,有没有实现的思路,貌似现在的前端菜的厉害,包括我,没有一个人会实现的,都只会粘贴复制

img

该回答引用ChatGPT

现动态梯形和进度模型可以通过CSS3中的transform和transition属性来实现。

动态梯形的实现思路:

1、首先需要创建一个正方形的div元素,然后使用CSS3的transform: skew()属性对该元素进行倾斜处理,将其变成一个梯形。

2、然后,通过CSS3的transition属性来控制梯形的宽度,从而实现动态的效果。比如可以在:hover时改变梯形的宽度。

3、最后,可以使用CSS3的伪元素:before和:after来实现梯形的边框。

以下是一个简单的动态梯形的实现代码:



<div class="trapezoid"></div>
css
Copy code
.trapezoid {
  width: 100px;
  height: 50px;
  background-color: #f00;
  transform: skew(20deg);
  transition: width 1s;
}

.trapezoid:hover {
  width: 200px;
}

.trapezoid:before,
.trapezoid:after {
  content: "";
  position: absolute;
  bottom: 0;
  border: 25px solid transparent;
}

.trapezoid:before {
  border-left-color: #f00;
  left: -50px;
}

.trapezoid:after {
  border-right-color: #f00;
  right: -50px;
}

进度模型的实现思路:

首先需要创建一个进度条的div元素,然后使用CSS3的transform: skew()属性将其变成一个梯形。

然后,使用CSS3的background-gradient属性来创建进度条的颜色。

最后,可以使用CSS3的伪元素:before和:after来实现进度条的边框。

以下是一个简单的进度模型的实现代码:


<div class="progress"></div>
css
Copy code
.progress {
  width: 200px;
  height: 20px;
  background-image: linear-gradient(to right, #f00 50%, #fff 50%);
  transform: skew(20deg);
  transition: width 1s;
}

.progress:before,
.progress:after {
  content: "";
  position: absolute;
  bottom: 0;
  border: 10px solid transparent;
}

.progress:before {
  border-left-color: #f00;
  left: -20px;
}

.progress:after {
  border-right-color: #fff;
  right: -20px;
}

以上是一个简单的实现示例,具体实现方式可以根据需求进行修改和扩展。

1.css设置两个div为梯形,中间写vs圆圈的div,css再去设置,然后定位定到他两中间
2.不要去评价任何一个职业职位,你觉得前端菜为什么不去学别的呢?没有前端你能看到那么多页面?没有前端页面谁去画,是你没有遇到牛逼的ok?