IE7和CSS table-cell属性

Rya*_*ith 32 css cross-browser internet-explorer-7 css-tables

所以我喜欢它,当我的应用程序在Firefox中运行良好,但随后我在IE中打开它... ...不,请再试一次.

我遇到的问题是我将CSS显示属性设置为JavaScript nonetable-cell使用JavaScript.

我最初使用的是display: block,但是如果没有table-cell属性,Firefox就会让它变得怪异.

如果不在JavaScript中添加黑客来测试IE,我很乐意这样做.有什么建议?

谢谢.

and*_*oon 48

我用jQuery解决了这个问题:

$(document).ready(function(){
  if ($.browser.msie && $.browser.version == 7)
  {
    $(".tablecell").wrap("<td />");
    $(".tablerow").wrap("<tr />");
    $(".table").wrapInner("<table />");
  }
});
Run Code Online (Sandbox Code Playgroud)

上面的脚本假设你有使用样式的div,例如:

<style>
.table     { display: table; }
.tablerow  { display: table-row; }
.tablecell { display: table-cell; }
</style>
Run Code Online (Sandbox Code Playgroud)


Jac*_*cco 31

解决这个设定的一个好办法display'':

<script type="text/javascript">
<!--
function toggle( elemntId ) {
    if (document.getElementById( elemntId ).style.display != 'none') {
        document.getElementById( elemntId ).style.display = 'none';
    } else {
        document.getElementById( elemntId ).style.display = '';
    }
    return true;
}
//-->
</script>
Run Code Online (Sandbox Code Playgroud)

空值会导致样式恢复为默认值.此解决方案适用于所有主流浏览器.

  • 根据规范,`initial`关键字正在CSS3中添加,其行为与上面完全相同. (6认同)

Jon*_*ler 9

我有同样的问题并使用过

*float: left; 
Run Code Online (Sandbox Code Playgroud)

"*"仅表示IE

  • 确切地说,`*`(星号)黑客攻击IE 7及以下版本. (3认同)
  • *是一个很好的技巧,但浮动不会给你均匀间隔的元素,这是你想要的表格. (3认同)