仅使用CSS,可以通过操作单个矩形来创建内角大于180度的四边形吗?我知道可以使用CSS3转换从标准矩形创建任意凸四边形。
我已经能够以几种不同的方式使用多个矩形创建凹多边形(有时借助隐藏溢出);某些组合:
[编辑]可以看到使用上面#1和#3的凹四边形(一种“星际迷航”符号)的示例here。
我想要一个带有模拟嵌入阴影的凹四边形(带有alpha通道的深色前景色,带有alpha通道的浅色阴影),这就是上面的#2和#3有问题的原因。在这一点上,一个实际的阴影似乎是不可能的;我对调整元素的阴影没有很好的体验。
那么,有没有可能通过操纵一个矩形来做到这一点?或者,还有其他方法我没有考虑过吗?
[编辑]
我认为这在一定程度上是可能的,但这是一种欺骗:使用单字符文本,其字形已经是一个合理安全字体的凹四边形(例如,U + 27A4,黑色向右箭头Arial Unicode),然后将垃圾转换出来。但是,这会导致跨浏览器与页面的其他元素对齐的问题。
答案 0 :(得分:3)
我很确定没有,因为虽然CSS依赖于矩阵变换,但它不是自由坐标变换 - 盒子坐标是通过反射来限制的:
如果我们有一个矩形(p1,p2,p3,p4),p1与p3相反,p2与p4相反,则此矩形的CSS表示形式是仅使用三个点定义的形状:p1,p2,p3然后隐含点p4,总是计算为{p2反映在p1-p3线的中点}。对矩形的三个实际坐标的任何操作都将导致第四个隐含坐标的变化。
这使得无法获得凹四边形。