2012-09-27 44 views
0

我正在阅读一些JavaScript来尝试创建自己的滑块,并且遇到了一些让我困惑的东西。有一个CSS规则如下:JavaScript CSS选择器

html.js #slideshow .slides img 
{ 
    position: absolute; 
} 

该解释说,该规则只适用于JavaScript可用。现在我有点困惑......如果JavaScript在浏览器中可用,是否应用此规则?或者,如果文件“html.js”已包含在html页面中,或者包含任何JavaScript文件?

在此先感谢。

回答

1

您看到的页面可能是使用Modernizr。它是一个JavaScript库,用于检测用户浏览器中的HTML5和CSS3功能,并通过向HTML元素添加类“no-js”并在页面加载Modernizr时将其替换为您正在测试的一组规则。

如果您想在浏览器中测试特定功能,请查看Modernizr网站以获取更多详细信息。

红外你不希望你的<title>标签内将直接向这Modernizr的使用,你可以用JavaScript做到这一点:

<script> 
    document.documentElement.className = document.documentElement.className.replace(/(\s|^)no-js(\s|$)/, '$1' + 'js' + '$2'); 
</script> 
+0

谢谢,会做! – nickcorin

+0

答复已更新,无需使用Modernizr –

2

大概在您的网页时对头部的脚本,增加了一个js类的根元素

这将确保只有在JavaScript可用在客户端上的CSS规则将被应用。当然,如果JavaScript不可用,该类将不会被脚本插入。

这是特别用于防止无样式内容(FOUC)

+0

我觉得我得到你的意思,因此,如果任何JavaScript所链接的CSS规则将适用? – nickcorin

+2

不,如果javascript是*可用的*无论您​​包含多少个js文件,都会应用规则 – fcalderan

5

这是一种技术,您可以使用JavaScript闪光灯现代的方式来上课“JS”添加到HTML标记。没有JavaScript,没有js类。使您的CSS非常容易知道JS是否已启用。

+0

那么当我包含JavaScript文件时会自动发生,还是必须自己做? – nickcorin

+0

查看我的博客回复这个问题 –

+0

不,你需要自己动手。 – scoota269