html - 使用 CSS 和 HTML 自定义 div 形状

标签 html css reactjs svg

enter image description here

我想创建一个这种形状的div。我无法使用伪元素(例如::before 和::after )在所有 Angular 上获得圆 Angular 。我尝试操作此代码,但无法达到所需的形状和所 Angular 圆 Angular 。

<div class="trapezoid">
</div>

.trapezoid {
  position: relative;
  width: 90%;
  height: 200px;
  overflow: hidden;
  border-radius:20px !important;
}

.trapezoid:after {
  content: '';
  position: absolute;
  top: -100px;
  left: 0;
  width: 140%;
  height: 100%;
  background: red;
  border-radius: 20px 20px 20px 20px;
  -webkit-transform-origin: 100% 100%;
  -moz-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  -o-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
  -webkit-transform: perspective(400px) rotateX(45deg);
  -moz-transform:  perspective(400px) rotateX(45deg);
  -ms-transform: perspective(400px) rotateX(45deg);
  -o-transform: perspective(400px) rotateX(45deg);
  transform: perspective(400px) rotateX(45deg);
}

最佳答案

我会使用clip-path CSS 声明,使用 path()基本形状的函数。

您必须使用正确的数字进行一些调整才能获得您想要的确切尺寸和 Angular ,但我认为这可能是可行的方法:

.shape {
  background: lightgrey;
  width: 330px;
  height: 140px;
  clip-path: path('M70 0 320 0 A 10 10 0 0 1 330 10 L 330 130 A 10 10 0 0 1 320 140 L 10 140 A 10 10 0 0 1 0 130 L 0 70 A 5 10 45 0 1 6 60 L 60 6 A 5 10 45 0 1 70 0Z')
}
<div class='shape'></div>

或者使用 <svg> 采取一些不同的方法(运行时点击整页链接):

.svg {
  width: 95vw;
  height: 95vh;
  display: block;
  margin: auto;
}


/*.shape {
  background: lightgrey;
  width: 100%;
  height: 100%;
}*/
<svg class='svg' viewBox='0 0 330 130'>
  <path class='shape' fill='lightgrey' d='M70 0 320 0 A 10 10 0 0 1 330 10 L 330 130 A 10 10 0 0 1 320 140 L 10 140 A 10 10 0 0 1 0 130 L 0 70 A 5 14.14213 45 0 1 5 60 L 60 5 A 5 14.14213 45 0 1 70 0Z'></path>
</svg>

关于html - 使用 CSS 和 HTML 自定义 div 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72049402/

相关文章:

javascript - 在不调用父托管脚本的情况下让子页面调整父页面大小?

javascript - 使用 jQuery 将 "Remove"按钮动态添加到 HTML 表

javascript - JS : Make a div appear in all slides each time scrolling within sections and returning to slide section

html - 表格数据的语义和表示

javascript - 为什么我的图标被放置为列而不是行?

javascript - 滚动到特定的 Div 在花式框弹出窗口中不起作用

javascript - 在 Laravel 5.3 中动态更改图像

html - 如何使 div 增长以包含其子元素?

javascript - 使用复选框从数组中添加/删除项目

javascript - 使用 async/await 从 firebase 数据库顺序检索数据不起作用