html5 + css 绘制菱形

image.png

<div class="diamond">
   <div class="inner">xxxxxxxxxxxxxxxxxxx</div>
</div>
.diamond{
  width: 180px;
  height: 180px;
  transform: rotate(-45deg) skew(-30deg, -30deg);
}

.diamond .inner{
  transform: rotate(45deg) skew(30deg, 30deg);
}

这样画出来的菱形, 内部文字扭曲了, 请问有什么好的方法吗

阅读 3.2k
1 个回答

实现效果如下,可以做到完成自适应尺寸

image.png

这种图形用 SVG 绘制再合适不过了,只不过需要注意自适应边框,设置边框不缩放,关键属性如下

preserveAspectRatio="none"
vector-effect="non-scaling-stroke"

完整 SVG 如下

<svg width="100%" height="100%" preserveAspectRatio="none" viewBox="0 0 246 82" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path vector-effect="non-scaling-stroke" d="M3.16228 41L123 1.05409L242.838 41L123 80.9459L3.16228 41Z" fill="#FFECC7" fill-opacity="0.6" stroke="#FFB200" stroke-width="2"/>
</svg>

也可以转成 base64 ,作为背景图使用

完整代码可以查看 https://codepen.io/xboxyan/pe...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题