是否可以在某些浏览器中隐藏id元素?

时间:2011-06-22 13:17:50

标签: javascript html css

说我有一个像这样定义的ID

<span id ="radiobuttonContainer"> Check to enable checkboxes: 
<input type="radio" name="cov-failed" value="cover" onclick="javascript:printoutCheckboxes('cover')">   
Coverage                
<input type="radio" name="cov-failed" value="failed" onclick="javascript:printoutCheckboxes('failed')"> 
Failed</span>

我不想在I.E 9以下的浏览器中显示这个“spanId”因为这使得能够进行更多虚拟化的数据,IE&lt; 8不能管理。我知道你可以拥有不同的javascripts和css:es,这取决于像这样的浏览器

<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="root/include/excanvas.min.js"></script><![endif]--> 

然后选择显示:'无';

但是我想知道除了这一行之外还有2个相同的.css文件包含完全相同的信息真的很麻烦吗?

我不能只做这样的事吗?

<!--[if lte IE 8]>document.getElementById('radiobuttonContainer').style.display = 'none';<![endif]-->

3 个答案:

答案 0 :(得分:4)

您应该能够将标记包装在条件注释中。或者,由于页面中包含内联的CSS优先于包含的CSS,因此您不必包含第二个样式表,只需要特定于该情况的新定义。即。

<!--[if lte IE 8]>
<style type="text/css">
#radiobuttonContainer{
  display = 'none';
};
<![endif]-->

并将其包含在CSS文件之后。

答案 1 :(得分:1)

如果您使用Modernizr之类的工具,则可以使用它来确定浏览器的功能。

如果某个特定功能在IE8中不可用,您可以在样式表中引用它,如果浏览器没有该功能,则隐藏此元素。

假设该功能是HTML5画布,您需要做的就是在您的页面中包含Modernizr Javascript的一行脚本,然后您在CSS中执行类似的操作:

.nocanvas .radiobuttonContainer {
    display:none;
}

答案 2 :(得分:0)

我认为你肯定可以这样做:

<!--[if lte IE 8]><script type="text/javascript">
   document.getElementById('radiobuttonContainer').style.display = 'none';
</script><![endif]-->

顺便提一下你的例子。