2015-06-19 48 views
1

我只是想将div的盒子阴影设置为:... 0 0 500px ...(大模糊值)。谷歌浏览器(最新版本,windows & ubuntu)我看到奇怪的方块 - 人工制品。在Firefox中,我只得到一个正常的影子。Chrome中的问题:渲染大盒子阴影

的jsfiddle:http://jsfiddle.net/2GRGF/1/(从How to create a box-shadow that covers the entire page?

是否有任何变通办法?

Box-shadow bug in chrome

+0

对于上帝的爱不要这样做。全屏显示的时间范围为 '100ms-160ms'。你不需要这样做。 – Ogalb

+0

@BlagoEreš我需要静态轻量级非常大的发光效果。那么,绘制它的最好方法是什么? SVG? – LevChurakov

+1

我不知道你的设计是怎么样的,但是恐怕目前CSS'box-shadow'是唯一的选择,但是性能会降低,我建议你不要那么做。尝试重新思考你的设计,并提出更实用和更高效的方案。 'border-radius' +'box-shadow'仍然是非常昂贵的css属性,特别是在Chrome中。 – Ogalb

回答

1

您可以使用过滤器模拟插图的box-shadow。就像这样:http://jsfiddle.net/igoradamenko/vmeortsf/

HTML:

<div class="shadow"> 
    <div class="blurred"></div> 
</div> 

CSS:通过IE以外的所有现代浏览器(所有的)支持

.shadow { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 

    background: #555; 
} 

.blurred { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 

    margin: auto; 
    width: 60%; 
    height: 60%; 
    border-radius: 50%; 

    background: #fff; 
    -webkit-filter: blur(100px); 
    filter: blur(100px); 
} 

今天的过滤器。但是你可以为它们使用有条件的规则。所以,它至少必须在IE9 +中工作:http://jsfiddle.net/igoradamenko/yywuhx3p/

+0

在这种情况下,我更喜欢径向渐变...更快。 – LevChurakov

+1

@LevChurakov我不确定渲染/绘制速度过滤器和渐变,但编写梯度代码真的更快。说实话,我完全忘了他们。无论如何,我敢肯定箱子阴影比他们每个人都慢。 如果你真的需要盒子阴影,你应该添加'transform:translatez(0);'div来与它。它会加快阴影并删除一些文物。不是全部,但半个面包比没有面包好。祝你好运! :) –

0

您的模糊半径太大。

虽然我不认为这是一个好主意,因为@LevChurakov提到...

.shadow { 
    position: absolute; 
    width: 100%; 
    height: 100%; 
    -webkit-box-shadow: inset 0px 0px 215px #000000; 
    box-shadow: inset 0px 0px 215px #000000; 
} 
+0

当边界半径不是很大时,我会看到这个错误。附加的图像是这个jsfiddle截图。而在Firefox中,它很光滑,干净。 – LevChurakov

+0

-moz-box-shadow:inset 0px 0px 215px#000000;你没有FF特定的风格。 –

+0

在FF中它的工作原理和工作良好(你现在不需要任何前缀:http://caniuse.com/#feat=css-boxshadow)。在Chrome中 - 不。 – LevChurakov