【发布时间】:2020-12-13 03:02:14
【问题描述】:
我一直在尝试找到一种方法来为 div 元素提供一致的斜边。想想太空堡垒卡拉狄加中的纸——见下图,我圈出了我所说的斜角。为了进行更多设置,这些块 div 元素可以是不同的大小,并且可以随内容动态扩展/收缩。即使他们这样做了,我也希望斜角保持一致的大小(只要有足够的斜角空间)
基本上我需要圆角 CSS 边框半径属性的方形版本
我尝试了包括 Jquery Corner Plugin 在内的方法(似乎不再有效,需要维护,并且从文档中只能使用对我不起作用的纯色背景颜色),Old school DIV 生成(下面缺乏透明度,所以会破坏效果) ,以及其他多种方法。
显然,有一个 CSS 功能草案正在等待添加边框角形状,这正是我想要的,https://www.hongkiat.com/blog/css3-border-shape/ 但它没有被批准。从 Medium 上的一篇文章来看,此功能可能不是因为缺乏需要此功能的开发人员。 (+1 我对添加此内容的投票,我该乞求谁?)
所以,我开始思考,似乎这可能使用 SVG。然而,虽然我可以看到 SVG 是构建正确形状的解决方案,但我完全不知道如何做到这一点,并且一些糟糕的尝试以 SVG 的混乱而告终。坦率地说,我什至不知道这是否可以使用,因为 div 将是不同的形状。免责声明,我不是前端 Web 开发人员,而是从事一个需要我涉足的个人项目。所以我想我会问专家。
是否有人为此创建了 SVG 解决方案,而我只是在我挖掘的 20 多页搜索结果中没有看到它?这看起来可能吗?如果可能但还没有完成,人们会怎么做呢?斜角有更好的解决方案吗?我忽略了一个更简单的选项吗?
【问题讨论】:
-
啊,是的,已经试过了。抱歉,已经尝试了很多方法,很难记住所有方法。当您尝试为元素的背景赋予任何颜色时,它就崩溃了。背景颜色将同时显示角落的内部和外部 - 无法遮盖,
-
我认为我很接近了....但我认为我的转换不正确。角落里有一些小瑕疵,看起来我的盒子仍然没有在中心点旋转(由于某种原因,将盒子高度和宽度的一半的 X 和 Y 放入不起作用,因为我认为它会这样,所以我不得不猜测坐标...)有人可以帮助将其带到终点吗? jsfiddle.net/15u24ocq/4
-
请检查我的回答,如果它解决了您的问题或者您还需要什么,请告诉我。
-
好的,我有一些工作,jsfiddle.net/89n7kgma/12 但仍然不明白为什么我不能像我想要的那样移动枢轴。翻译 0, -35 对我来说毫无意义,是通过猜测和检查得出的。我原以为将平移点偏移到 50x50 对象的中心会是 25,25,然后只需旋转 45 度。这里发生了什么?我想更好地理解 SVG 翻译。
标签: javascript html css svg frontend