javascript - Internet Explorer 8 的 CSS 故障排除

标签 javascript jquery html css internet-explorer-8

不幸的是,我正在制作一个需要与 IE 8 兼容的网站。我已经成功实现了一些更改,据我了解至少 HTML5 无法正常工作。

但在这种情况下,我正在努力寻找正确的做法。

这个 JSFiddle 很好地简化了我的问题代码。想要的输出适用于我的 Chrome 版本。 http://jsfiddle.net/kjetilnordin/g6FGv/

表格内只有一行和三个单元格。这三个单元格在它们之间平分空间,并且不考虑它们的内容大小。现在,我有了切换框,可以将单元格变为不可见或再次可见。我希望剩余的单元格占据其父级的所有空间,分成 1、2 或 3 个可见单元格。

在 IE 8 中,单元格保持原来的 1/3 大小,并且只向左移动,当更靠左的单元格变为不可见时。

我预计其中一个 CSS 属性不受支持,但我已经检查了所有这些属性,它们应该可以工作。

那么这里有什么不合时宜的呢?一个解决方案会很好,但在正确的方向上插入也会受到赞赏。

代码:

<table>
    <tr>
        <td class="foo">
            foo
        </td>
        <td class="bar">
            bar
        </td>
        <td class="foobar">
            foobar
        </td>
    </tr>
</table>

<input type="checkbox" class="togglebox" value="foo">toggle off foo</input></br>
<input type="checkbox" class="togglebox" value="bar">toggle off bar</input></br>
<input type="checkbox" class="togglebox" value="foobar">toggle off foobar</input></br>

Javascript:

$('input:checkbox').live('change', function(){
    if($(this).is(':checked')){
        $("."+this.value).toggle(false);
    } else {
         $("."+this.value).toggle(true);
    }
});

CSS:

table{
    border: 1px solid black;
    border-collapse: collapse;
    width: 200px;
    min-width: 200px;
    max-width: 200px;
    table-layout: fixed;
}

td{
    border: 1px solid black;
    border-collapse: collapse;
    width: 100%;
    text-align: center;
}

最佳答案

实际上,尽管听起来很疯狂,IE8 在技术上是正确的。 Chrome 在这里是非标准的,有利于保持预期的行为。

table-layout:fixed 表示无论内容如何固定表格布局,包括对所述内容的更改。这样可以更快地呈现表格。

不幸的是,这意味着没有简单的方法来确保等宽列,同时让列数通过切换可变。

您需要删除 table-layout:fixed 并让 JavaScript 在加载时以及列数发生变化时计算适当的 width 百分比。

关于javascript - Internet Explorer 8 的 CSS 故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763612/

相关文章:

javascript - 检查元素是否在视口(viewport)中无法正常工作

html - 表格不会居中

html - 在 AngularJS 中以网格形式获取图像

javascript - 如何在 .append() 中获取脚本的值?

javascript - 在网页上显示后端响应

javascript - 如何编写 Jquery 条件 - 如果变量值为 <space>

javascript - $event.stopPropagation 不起作用

javascript - Angular 4 - 更改事件元素中的类

jquery - 如何循环 .animate JQuery

jquery - nested_form gem 添加有效但删除失败...为什么?