如果支持box-shadow,则隐藏边框

时间:2012-07-20 08:21:01

标签: javascript css

我有一个带边框和框阴影的div:

div.my-div
{
    border: 1px solid #555;
    box-shadow: 0px 4px 35px rgba(0,0,0,0.5);
}

边框很难看,但是对于不支持阴影的浏览器是必要的(div的背景与周围元素的颜色相同)。

如何检测浏览器是否支持box-shadow,并删除框阴影?也许用javascript?

编辑:我想这样做而没有任何依赖(例如modernizr)。

例如:

var boxShadowSupported = ???;
if (boxShadowSupported && typeof(document.getElementsByClassName) != 'undefined') {
  var elements = document.getElementsByClassName('my-div');
  for (var i= 0; i < elements.length; i++) {
    elements[i].setAttribute('style', 'border: 0;');
  }
}

2 个答案:

答案 0 :(得分:3)

您可以使用javascript检查框影浏览器支持:

if ('boxShadow' in document.body.style ) 
{
    alert('I can support shadow!');
}

答案 1 :(得分:0)

也许你可以试试这个:

var foo=document.createElement("div");
foo.style.boxShadow="0px 0px 0px rgb(0,0,0)";
document.body.appendChild(foo);
var boxShadowSupported=foo.style.boxShadow?1:0;