Modernizr基础知识

问题描述:

我在我的页面中包含了modernizr,但是如果我无法访问这些浏览器,我将如何测试它在IE 6-7中的工作?做类似的东西: http://designshack.net/articles/css/build-a-freaking-awesome-pure-css-accordion/Modernizr基础知识

基本CSS:

.accslide { 
    height: 0px; 
    width: 0px; 
    overflow: hidden; 
    } 
    input[type="radio"]:checked+label ~ .accslide { 
    width: 100%; 
    height:auto; 
    } 

如果第二选择不火,内容将是不可见的。

如果CSS3不受支持,是否有一种方法只加载Modernizr? 如何测试Modernizr是否在使用我的CSS选择器?

+0

你使用的是Chrome吗? – 2013-02-21 23:08:10

+0

您可以使用如下服务:'http:// www.browserstack.com/test-in-internet-explorer' – Kaeros 2013-02-21 23:08:52

+0

我有一份chrome,是的。 Browserstack看起来不错,但我今天买不起。 – 2013-02-21 23:09:24

Modernizr不添加任何功能的浏览器,只是检查现有的funcitionality。如果你想测试选择器支持,你需要添加它。 Here's a gist

但是,即使这样也不会让你想要完成什么,我想,当你检查单选按钮时,会显示accslide元素。如果您希望支持IE6,您很可能需要使用javascript。 - IE6甚至不支持[type="radio"]选择器,所以您也不能使用它。

您需要为单选按钮添加一个点击/更改处理程序,并使用类更新它的容器以正确获得所需的功能,特别是支持IE6。

这里是你的CSS是什么样子的例子:

#radioContainer .accslide { 
height: 0px; 
width: 0px; 
overflow: hidden; 
} 
#radioContainer.on .accslide { 
width: 100%; 
height:auto; 
} 

现在,在JavaScript中,有人点击时/改变单选按钮只需添加/删除on类的#radioContainer元素。 注:我给#radioContainer的ID B/C IE6将不会从两个CSS类名称样式的元素(最终,你将不会被支持IE6,并可以简单地提供.radio-container.on,不会对IE6的工作)

+0

如果我只是添加一个JavaScript切换的东西,会不会与css3做同样的事情?或者我应该做一些JS的条件加载? – 2013-02-21 23:27:21

+0

那么,我会简单地使用JavaScript解决方案并转储CSS3选择器。我已经更新了适用于所有浏览器的示例CSS。 – rgthree 2013-02-21 23:33:14

+0

当我通过caniuse看。com,似乎移动浏览器对css3的支持远高于JS。在我孩子的Android上,我们必须禁用JS才能使Google也能工作。由于手风琴在手机上非常有用,我首先要使用css3,而javascript的后备,听起来很古怪。 – 2013-02-21 23:37:27

如果给定的浏览器不支持它,Modernizr将不会启用CSS功能(如更新的选择器)。它主要是一个功能检测库。

+0

我可以使用它,因此这不会在旧版浏览器上消失我的内容吗?示例: http://designshack.net/articles/css/build-a-freaking-awesome-pure-css-accordion/ 请改用selectivizr? – 2013-02-21 23:15:40

+0

不熟悉selectivizr,但看起来像[ie7-js](http://code.google.com/p/ie7-js/)可以完成这项工作:http://ie7-js.googlecode.com/ svn/test/index.html – 2013-02-21 23:25:06

+0

@JenniferMichelle - Selectivizr非常棒,前提是您还使用其中挂钩的其他库之一(例如jQuery等)。如果你不使用其中的一个,那么ie7.js确实也会完成这项工作。有关更多信息,请参见http://*.com/questions/10231706/ie9-js-has-something-else-rendered-it-obsolete/10660881#10660881。 – Spudley 2013-02-26 20:06:05