如何在CSS中创建一个缩小的V形?

1 html css css3 css-shapes

这是一个雪佛龙:

.shape {
    height: 200px;
    width: 300px;
    position: absolute;
    overflow: hidden;
}
.shape:before, .shape:after {
    content: "";
    position: absolute;
    width: 150px;
    height: 120px;
    background: red;
    top: 10px;
}
.shape:before {
    transform-origin: 0% 100%;
    transform: skewY(20deg);
}
.shape:after {
    transform-origin: 100% 100%;
    transform: skewY(-20deg);
    right: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div class="shape"></div>
Run Code Online (Sandbox Code Playgroud)

我基本上需要创建的是:

在此输入图像描述

我们如何在悬停时拉伸雪佛龙?

Ter*_*rry 8

稍微不同的方法:使用rotate + translate而不是使用skew:

.shape {
    height: 200px;
    width: 260px;
    position: absolute;
    overflow: hidden;
}
.shape::before, .shape::after {
    border-radius: 20px;
    content: "";
    position: absolute;
    width: 150px;
    height: 40px;
    background: red;
    top: 50%;
    transition: all .25s ease-in-out;
}
.shape::before {
    transform-origin: 50% 50%;
    transform: rotate(20deg);
}
.shape::after {
    transform-origin: 50% 50%;
    transform: rotate(-20deg);
    right: 0;
}
.shape:hover::before {
    transform: translateX(15px) rotate(45deg);
}
.shape:hover::after {
    transform: translateX(-15px) rotate(-45deg);
}
Run Code Online (Sandbox Code Playgroud)
<div class="shape"></div>
Run Code Online (Sandbox Code Playgroud)