2017-04-15 82 views
2

我的代码 - Fiddle如何清除锯齿?

body{ 
 
    background: url('http://i.imgur.com/RECDV24.jpg'); 
 
    background-size: cover; 
 
} 
 
div{ 
 
    width: 150px; 
 
    height: 150px; 
 
    background-image: radial-gradient(circle at 0 0, transparent 28px, tomato 28px); 
 
}
<div></div>

如何去除锯齿现象?

enter image description here

谢谢你,我会很乐意帮助!

+0

IMG { 图像的绘制:optimizeSpeed;/* STOP SMOOTHING,GATE ME SPEED */ image-rendering:-moz-crisp-edges;/* Firefox */ 图像渲染:-o-crisp-edges;/* Opera */ 图像渲染:-webkit-optimize-contrast;/* Chrome(以及最终的Safari)*/ image-rendering:pixelated;/* Chrome */ 图像渲染:优化对比度;/* CSS3建议*/ -ms-interpolation-mode:nearest-neighbor;/* IE8 + */ } –

+0

@RïshïKêshKümar'crispEdges'用于SVG,但可能会打败提问者试图做的事情。对于其他属性也是如此。 – Rob

回答

4

取具有大box-shadow一种不同的方法的圆形元件上:

body { 
 
    background: url('https://i.imgur.com/RECDV24.jpg'); 
 
    background-size: cover; 
 
} 
 

 
.bitten { 
 
    height: 150px; 
 
    overflow: hidden; 
 
    position: relative; 
 
    width: 150px; 
 
} 
 

 
.bitten::before { 
 
    border-bottom-right-radius: 100%; 
 
    box-shadow: 0 0 0 1000px tomato; 
 
    content: ''; 
 
    height: 28px; 
 
    position: absolute; 
 
    width: 28px; 
 
    z-index: -1; 
 
}
<div class="bitten"></div>

+0

谢谢,它的工作原理 – Dmitriy

0

在某些浏览器中,您可以通过避免锐利边缘渐变来防止锯齿。因此,不是transparent 28px, tomato 28px,而是让颜色之间的转换更平滑一些,比如说1px。

body{ 
 
    background: url('https://i.imgur.com/RECDV24.jpg'); 
 
    background-size: cover; 
 
} 
 
div{ 
 
    width: 150px; 
 
    height: 150px; 
 
    background-image: radial-gradient(circle at 0 0, rgba(255,99,71,0) 28px, rgba(255,99,71,255) 30px); 
 
}
<div></div>

但是,这并不工作无处不在。要获得更坚实的方法,请参阅其他答案。

+3

铬以某种方式设法使这看起来参差不齐,无论有多少像素在两个... – Ryan

+1

嗯,我不知道为什么我总是认为铬和我自己的浏览器一样好。谢谢你的提醒! –

+0

是的,我真的希望它能够工作,现在我必须重写一些使用这种方法的页面:([放大的Chrome以6px为单位](https://i.stack.imgur。 com/vxcP4.png) – Ryan