*我将为我即将使用的措辞提前道歉。我不经常支持Internet Explorer,也不经常使用开发人员工具,因此我将使用文字来描述我对它的看法以及我所看到的内容,但我可能会使用更好的术语。
我正在开发第三方基于网络的软件平台(BigMachines),他们正在使用CSS类(名为“rule-hide”)来有选择地显示或隐藏表格中的列。
我们看到的问题是,从“IE7标准”文档模式中运行的IE查看时,“隐藏”列之后的列也是隐藏的
如果我们检查开发人员工具中的表,正确的'co'l,'th'和'td'元素分配了“rule-hide”类,并且这些元素没有显示,但另外紧跟着元素这些没有显示。它似乎是1表示1.因此,如果我们只有1个这个类的元素,则有1个隐藏的元素。如果该课程有2个,则不会显示2个额外内容。
在开发人员工具中,如果我们选择未显示但应该是的元素,则class属性为空,但在Style下显示“.rule-hide”(以及相关的'display:none!important;' )如果我们选择一个确实显示的元素,它也没有该类,但它在Style下没有它。
如果我使用下面的html创建本地html文件,请在IE中以文档模式=“IE7标准”打开它,仅显示“描述”和“价格Ea”。隐藏了“电缆类型”和“成本Ea”。如果我从 col或th中删除该类,则会显示Cost Ea。
<!DOCTYPE html>
<html>
<head>
<style>.rule-hide {display: none !important;}</style>
</head>
<body>
<table>
<col />
<col class='rule-hide'/>
<col />
<thead>
<tr>
<th>Description</th>
<th class='rule-hide'>Cable Type</th>
<th>Cost Ea</th>
<th>Price Ea</th>
</tr>
</thead>
</table>
</body>
</html>
这在Compat View中是否常见于IE?是否记录了发生了什么,为什么会发生这种情况,或者如何纠正它?
非常感谢任何见解。
*编辑包含代码
答案 0 :(得分:2)
尽可能地说,二级类定义让IE7感到困惑。我猜它首先在TH上行动,然后因为那个消失了,colgroup规则隐藏类正在杀死第二个,那时候就是成本EA。
加入头部:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>jQuery.noConflict();jQuery(document).ready(function(){jQuery('col.rule-hide').removeClass('rule-hide');});</script>
似乎返回丢失的列,同时保留所需的隐藏,隐藏。