使用Javascript检测CSS功能

时间:2011-08-18 15:14:26

标签: javascript css browser

是否可以使用Javascript检测CSS支持?

例如,是否可以检测浏览器是否支持这样的属性选择器?

input[type='text'] { }

3 个答案:

答案 0 :(得分:5)

Modernizr旨在检测浏览器功能,并且可能在此实例中提供帮助。 http://www.modernizr.com/

答案 1 :(得分:3)

这有点推测,因为我还没有测试过,但我相信通过JS可以添加一个style元素后跟一个它有效的元素,然后测试值:

推测未经测试的代码,可能有效也可能无效(jQuery用于简洁):

$('<style type="text/css" id="foo">input[type="text"]{ width: 10px; }</style>').appendTo('head');
$('<input type="text" id="bar">').appendTo('body');
if ($('#bar').width() == 10)
{
  //attr selector supported
}
$('#foo, #bar').remove();

答案 2 :(得分:2)

document.querySelectorAll("input[type='text']")

但是对于旧浏览器而言,这自然会失败。

除此之外,您可以使用style属性来检查是否已应用某个CSS属性。

input[type='text'] {
  background-repeat: no-repeat; /* or any other irrelevant, non-default value */
}

if (myInputElem.style.backgroundRepeat == "no-repeat") {
  // selector is supported
}