html - 如何让流体表与省略号一起使用?

标签 html css css-tables ellipsis

假设我有一个包含两列的表格,我希望右列宽度为表格单元格中内容的大小,而左列宽度尽可能宽。我还希望左边的列不要换行并显示省略号。

我在这里创建了一个 jsfiddle 示例 http://jsfiddle.net/fTd8m/

<style type="text/css">
.parent{
    display:table;
    table-layout:fixed;
    width:100%;
}
.left-column{
    display:table-cell;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space:nowrap;
}
.right-column{
    text-align:right;
    display:table-cell;
}
</style>

<div class="parent">
    <div class="left-column">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
    <div class="right-column">
        Right Column
    </div>
</div>

我遇到的问题是让左栏尽可能宽。 如果我删除 css table-layout:fixed;省略号没有按预期工作。

如何获得可与省略号配合使用的流动表格?

最佳答案

我所做的是添加一个带有 inner-block 样式的段落元素。然后我使用 jQuery 遍历右列中的所有元素,测量它们的最大宽度。然后我将最大宽度分配给该列。

您可以在这个 jsfiddle 链接下找到我的解决方案 http://jsfiddle.net/jvgRV/

<script type="text/javascript">
$(function() {
    var maxWidth = 0;
    //go through each paragraph in the right column and find the widest value.
    $(".innerParagraph").each(function() {
        if(maxWidth < $(this).width()){
            maxWidth = $(this).width();
        }
    });
    // assign max width to column
    $(".right-column").width(maxWidth);
});
</script>

<style type="text/css">
.table{
    display:table;
    table-layout:fixed;
    width:100%;
}
.row{
    display:table-row;
}
.left-column{
    display:table-cell;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space:nowrap;
}
.right-column{
    text-align:right;
    display:table-cell;
}
.innerParagraph{
    display:inline-block;   
}
</style>

<div class="table">
    <div class="row">
        <div class="left-column">
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
        <div class="right-column">
            <p class="innerParagraph">Right Column</p>
        </div>
    </div>
    <div class="row">
        <div class="left-column">
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
        <div class="right-column">
            <p class="innerParagraph">Right Column wider</p>
        </div>
    </div>
</div>

关于html - 如何让流体表与省略号一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202199/

相关文章:

javascript - 缩放时,带有边距和填充的内部 div 最终会超过外部 div

html - css - 溢出 : hidden in div nested inside display: table-cell

html - 为什么使用 float 而不是 css 属性表

jquery - 在 css div 表上使用 jQuery 扩展表行

javascript - Jquery 在 html() 上添加换行符

html - 我如何拥有图例的 fieldset::before 规则帐户?

javascript - CSS 随机背景图像位置在范围和增量内;转换时间的随机数

css - 空白 : nowrap; applied to li. 在 IE 中不起作用

javascript - 使内容可嵌入外部网站的良好做法/策略是什么?

c# - ASPX 表单在提交时不调用代码隐藏