jquery - CSS显示表格单元格宽度不起作用

标签 jquery html css

我正在尝试使用 CSS 创建具有相对宽度的表格结构。

CSS:

.dtable { display: table; width:100%; }    
.drow { display: table-row; width:100%; }    
.dcell { display: table-cell; }
#control_panel { width:100%; }
#left_nav { width:14%;  padding: 1%; }    
#chart_container {  width:84%; padding:1%; }

HTML:

<div id='main_wrapper' class='dtable'>
    <div id='control_panel_wrapper' class='drow'>
        <div id='control_panel' class='dcell'>
        </div>
    </div>
    <div id='bottom_wrapper' class='drow'>
        <div id='left_nav' class='dcell'>&nbsp;</div>
        <div id='chart_container' class='dcell'>&nbsp;</div>
    </div>
</div>

关闭 body 标签前的 Javascript 代码:

<script>
$(document).ready(function() {
    console.log($(window).width());
    console.log($("#bottom_wrapper").width());
    console.log($("#left_nav").width());
    console.log($("#chart_container").width());
});
</script>

输出:

1356
1340
1282.2
3.2

为什么 left_nav 的宽度不是其父级 bottom_wrapper 的 14%?

最佳答案

使用 display:table-cell 时要记住的关键是它会使您的 div 表现得像 td 元素。在您的情况下,control_panel 被分配了 100% 的宽度,导致其正下方的单元格(即 left_nav)被拉伸(stretch)。

如果我没记错的话,你正试图在你的 control_panel 上执行 colspan,对吗?不幸的是,那是one of the limitation of display:table .

解决方法是将您的 control_panel_wrapperbottom_wrapper 分离到单独的 dtable 中。看看这个fiddle现场演示。 (如果您不喜欢边框,可以从 dcell 中删除 border:1px solid gray;。)

关于jquery - CSS显示表格单元格宽度不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25830401/

相关文章:

javascript - 运行 javascript 过夜后系统挂起

javascript - 拦截并预处理 jQuery-ui 自动完成数据

javascript - 使用 CSS 基于 HTML 时间线的列表样式

html - 带有列的面板页脚 Bootstrap ,它不会出现在同一行中

jquery - 不可拖动到溢出之外

javascript - 如何获取输入文本字段中的选择框选项值

javascript - 我的 $(window).scroll 没有响应 (jQuery)

java - 从 HTML 页面上的本地 Java/java applet 类调用函数

html - 当为 html、body 定义溢出时,键盘向下按钮不起作用

javascript - HTML & CSS <select> 和 <option> 布局