转换父级时边框上的不需要的轮廓

Zac*_*ier 8 css rendering border css3 css-transforms

我在一些内容上使用边框.但是,我发现一个不需要的1px轮廓颜色与在background转换父级时在边框周围添加颜色的颜色相同(至少使用scalerotate).这也发生在孩子的伪元素上

.container { 
    transform:rotate(-45deg); 
}
.child {
    border:3px solid white; background:green;
}
Run Code Online (Sandbox Code Playgroud)

jsFiddle与...合作

我已经在最新的Chrome和IE上测试了,问题在于两者

如何在不使用box-shadow或删除转换的情况下摆脱此轮廓?

val*_*als 8

添加一个translateZ(1px)

.container { 
    position:absolute; 
    top:50%; left:50%; 
    -webkit-transform:translateZ(1px) rotate(-45deg); 
    transform:rotate(-45deg); 
}
Run Code Online (Sandbox Code Playgroud)

(不确定为什么这样做......)

小提琴

似乎IE需要更多修复......

.container { 
    position:absolute; 
    top:50%; left:50%; 
    -webkit-transform:translateZ(1px) rotate(-45deg); 
    transform:perspective(999px) translateZ(1px) rotate(-45deg); 
}
Run Code Online (Sandbox Code Playgroud)

fiddle2

  • 所有这些技巧(以及其他答案中的背面可见性)的工作方式类似,在图形引擎中使用更准确的渲染(有时使其由GPU渲染).但是,这总是一个试验和错误的问题.通常的技巧是强制进行三维变换(有时用translateZ(0px)就足够了),设置一个pespective,并设置背面可见性隐藏 (3认同)