简单的方法
要绘制任何形状,您可以使用 CSS clip-path 属性,如下所示。
您可以使用免费的在线编辑器生成此代码(例如:https://bennettfeely.com/clippy/)
.trapezoid {
clip-path: polygon(0 0, 100% 0, 84% 41%, 16% 41%);
}
带有可重复使用的代码
如果你想让它更具适应性,你可以定义一个 Sass mixin 像:
@mixin trapezoid ($top-width, $bottom-width, $height) {
$width: max($top-width, $bottom-width);
$half-width-diff: abs($top-width - $bottom-width) / 2;
$top-left-x: 0;
$top-right-x: 0;
$bottom-left-x: 0;
$bottom-right-x: 0;
@if ($top-width > $bottom-width) {
$top-left-x: 0;
$top-right-x: $top-width;
$bottom-left-x: $half-width-diff;
$bottom-right-x: $top-width - $half-width-diff;
} @else {
$top-left-x: $half-width-diff;
$top-right-x: $bottom-width - $half-width-diff;
$bottom-left-x: 0;
$bottom-right-x: $bottom-width;
}
clip-path: polygon($top-left-x 0, $top-right-x 0, $bottom-right-x $height, $bottom-left-x $height);
width: $width;
height: $height;
}
然后像这样将它用于所需的元素(这里的参数是$top-width,$bottom-width,$height):
.my-div {
@include trapezoid(8rem, 6rem, 2rem);
}