javascript - 更改父类后表格宽度发生变化

标签 javascript jquery html css cross-browser

我有一个包含多个表格的 div。根据 div 的类别,我希望它们隐藏或可见。代码是这样的

HTML

<div id="div-handle" class="show-first">
  <table class="table-css first-table">
    ...............
  </table>
  <table class="table-css second-table">
    ...............
  </table>
</div>

CSS

.table-css{ 
    border-collapse:collapse;
    margin:0;
    padding:0;
    text-align:left;
    width:100%;
}

.show-first .first-table{ display:block; }
.show-first .second-table{ display:none; }

.show-second .first-table{ display:none; }
.show-second .second-table{ display:block; }

JS-jQuery

$('#some-link').click(function(){ 
    $('#div-handle').removeClass().addClass('show-second');
});

我注意到,在设置类后,显示的表格不再具有 100% 宽度,它只是一个普通表格。

到目前为止,我在 FF 和 Chrome(最新版本)中注意到了这一点,但在 IE9 中却没有。在 IE9 中,表格仍然是 100%。

最佳答案

.show-second .second-table{ display:block; }

如果您正在设置表格的display 属性,那么您希望将其设置为table:

.show-second .second-table{ display:table; }

还有:table-rowtable-cell 如果你需要显示那些类型的元素:https://developer.mozilla.org/en/CSS/display

这是一个演示:http://jsfiddle.net/jasper/NnCPU/ (请注意,我使用了 .toggleClass() 而不是 .addClass()/.removeClass(),因此链接事件处理程序可以用于及以上)

关于javascript - 更改父类后表格宽度发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591997/

相关文章:

javascript - 我的 sc5-styleguide 不再更新

javascript - 现代(2018)浏览器不支持 forEach 吗?

javascript - float 页脚仅在用户向下滚动 200 像素后出现

javascript - 使用点击时获得的 key 访问 javascript 对象

javascript - 通过 `map`函数调用传入key

javascript - 区分日语汉字建议的 "Enter"按键和其他 "Enter"事件

javascript - 为什么我不能让 bootstrap popover 工作?

html - 如何向上移动堆叠的列(使用 Bootstrap ,但任何 css 都可以)

Javascript 更快地替换 HTML 代码中的 "variables"

javascript - 如何将动态创建的变量传递给 JavaScript 的 addEventListener