恐怕我在当前的 Firefox (24.0) 中面临渲染故障,而 Chrome (30) 呈现与预期相同的代码。
这是代码:http ://dabblet.com/gist/6982745
HTML:
<div class="triangle"></div>
CSS:
.triangle {
height: 50%;
width: 40%;
position: relative;
top: 50px;
left: 50px;
background-color: black;
overflow: hidden;
/*
* Here comes the malicious line:
*/
transform: rotate(-18deg);
}
.triangle:before {
content: "";
width: 200%;
height: 300%;
position: absolute;
background-color: white;
transform-origin: left top;
transform: rotate(-52deg);
}
.triangle:after {
content: "";
width: 200%;
height: 300%;
position: absolute;
top: 38%;
background-color: white;
transform-origin: left top;
transform: rotate(26deg);
}
基本上,有一个黑色正方形 (.triangle) 被旋转的白色正方形 (:before 和 :after) 部分覆盖以创建一个三角形。黑色方块本身旋转了 18 度 - 这导致 Firefox 在 .triangle 周围呈现某种灰色边框 - 即使两个白色方块都应该覆盖该区域中的每个像素。作为参考,Chrome 省略了这样的边框。一个小实验告诉我,只有在 0°、90°、180° 以外的旋转时才会出现故障......
我的问题是:我做错了什么吗?(我知道有更简单的方法来创建一个三角形 - 这只是一个简化的例子)这个故障是否有已知的解决方法?我已经尝试过 box-shadow 和 border - 都没有成功。
提前致谢 :)