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选择器?
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的工作)
如果我只是添加一个JavaScript切换的东西,会不会与css3做同样的事情?或者我应该做一些JS的条件加载? – 2013-02-21 23:27:21
那么,我会简单地使用JavaScript解决方案并转储CSS3选择器。我已经更新了适用于所有浏览器的示例CSS。 – rgthree 2013-02-21 23:33:14
当我通过caniuse看。com,似乎移动浏览器对css3的支持远高于JS。在我孩子的Android上,我们必须禁用JS才能使Google也能工作。由于手风琴在手机上非常有用,我首先要使用css3,而javascript的后备,听起来很古怪。 – 2013-02-21 23:37:27
如果给定的浏览器不支持它,Modernizr将不会启用CSS功能(如更新的选择器)。它主要是一个功能检测库。
我可以使用它,因此这不会在旧版浏览器上消失我的内容吗?示例: http://designshack.net/articles/css/build-a-freaking-awesome-pure-css-accordion/ 请改用selectivizr? – 2013-02-21 23:15:40
不熟悉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
@JenniferMichelle - Selectivizr非常棒,前提是您还使用其中挂钩的其他库之一(例如jQuery等)。如果你不使用其中的一个,那么ie7.js确实也会完成这项工作。有关更多信息,请参见http://stackoverflow.com/questions/10231706/ie9-js-has-something-else-rendered-it-obsolete/10660881#10660881。 – Spudley 2013-02-26 20:06:05
你使用的是Chrome吗? – 2013-02-21 23:08:10
您可以使用如下服务:'http:// www.browserstack.com/test-in-internet-explorer' – Kaeros 2013-02-21 23:08:52
我有一份chrome,是的。 Browserstack看起来不错,但我今天买不起。 – 2013-02-21 23:09:24