CSS表格单元格对齐和省略号不起作用

时间:2015-07-02 01:32:45

标签: html css

我有一些HTML代码没有使用CSS省略号隐藏和切断。

我已经尝试了很多东西来解决这个问题,但是对我来说没有任何作用(而且它杀了我,我无法修复这么简单的问题)。我已经阅读了关于CSS省略号的所有SO帖子。

以下是我所拥有的视觉表现:

enter image description here

如图所示,11/2001 (2 annees, 10 mois)被删除到下一行,省略号不生效。

我正在尝试将11/2001 (2 annees, 10 mois)保留在提示符日期d' achevement 旁边,如果值太长,则使用省略号剪切(隐藏),如在这种情况下。

这是我的HTML

<div id="live_preview" class="livePreview_resumeWrapper1">
    <div class="resumeStyleWrapper25">
        <div class="resumeStyleOptimisedContainer25">
            <div class="resumeStyleStandardHeadings25">Emploi Détails d'histoire</div>
        </div>
        <div class="resumeStyleWrapper25">
            <div class="resumeStyleStandardTableRow25">
                <div class="resumeStyleStandardContainer25">
                    <div class="resumeStyleStandardTableRow25">
                        <div class="resumeStyleStandardLabels25">employeur</div>
                        <div class="resumeStyleStandardLabelContent25">french</div>
                    </div>
                    <div class="resumeStyleStandardTableRow25">
                        <div class="resumeStyleStandardLabels25">Date de demarrage</div>
                        <div class="resumeStyleStandardLabels25">
                            <div class="resumeStyleDateStartContent25">01/2009</div>                
                            <div class="resumeStyleFinishDateLabel25">Date d'achevement</div>
                            <div class="resumeStyleDateFinishContent25">
                                <div class="ellipsis">11/2011 (2 annees, 10 mois)</div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

这是我的CSS

.livePreview_resumeWrapper1 {
    border: 1px solid #000;
    box-shadow: 10px 10px 5px 0px #888888;
    direction: ltr;
    padding: 20px;
    width: 93%;
}

.resumeStyleWrapper25 {
    border-spacing: 0px 0px;
    display: table;
    font-family: verdana;
    font-size: 12px;
    width: 100%;
}

.resumeStyleOptimisedContainer25 {
    /* THIS CLASS ALTERNATES BETWEEN A ROW AND A NON-ROW DEPENDING ON THE STYLE REQUIREMENTS */
    background-color: #000;
    display: table-cell;
    font-weight: bold;
    min-width: 149px;
    padding: 2px;
    text-transform: uppercase;
    vertical-align: top;
    width: 18%;
}

.resumeStyleStandardHeadings25 {
    background-color: #000;
    color: #fff;
    display: table-cell;
    font-weight: bold;
    min-width: 149px;
    padding: 2px;
    text-transform: uppercase;
    vertical-align: top;
    width: 18%;
}

.resumeStyleStandardContainer25 {
    padding-left: 5px;
    width: 100%;
}

.resumeStyleStandardTableRow25 {
    display: table-row;
}

.resumeStyleStandardLabels25 {
    direction: ltr;
    display: table-cell;
    font-weight: bold;
    height: 100%;
    min-height: 25px;
    overflow: hidden;
    padding: 2px;
    padding-right: 10px;
    text-align: right;
    vertical-align: top;
    white-space: nowrap;
}

.resumeStyleDateStartContent25 {
    direction: ltr;
    display: table-cell;
    float: left;
    padding: 2px;
    text-align: left;
    vertical-align: top;
    width: 20%;
}

.ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.resumeStyleFinishDateLabel25 {
    background-color: #fff;
    color: #000;
    direction: ltr;
    display: table-cell;
    float: left;
    font-weight: bold;
    padding: 2px;
    padding-right: 10px;
    text-align: left;
    vertical-align: top;
}

.resumeStyleDateFinishContent25 {
    direction: ltr;
    display: table-cell;
    float: left;
    padding: 2px;
    text-align: left;
    vertical-align: top;
}

任何人都可以指出我做错了什么吗?

修改

我更新了HTML&amp;评论中要求的CSS。

1 个答案:

答案 0 :(得分:1)

CSS表结构存在问题,您有一些表格单元格直接保留在也设置为表格单元格的元素下,这是无效的。您可以将内部表格单元格元素包装到容器中并将其设置为display:table,这样可以解决问题。

就是这部分:

<div class="table">
    <div class="resumeStyleStandardLabelContent25">
        <div class="ellipsis">01/2009 Date d'achevement</div>
    </div>
    <div class="resumeStyleStandardLabelContent25">
        <div class="ellipsis">11/2011 (2 annees, 10 mois)</div>
    </div>
</div>

一般来说,正确 CSS表格布局是这样的,但如果只有一行,则不需要行。

<div style="display:table">
    <div style="display:table-row">
        <div style="display:table-cell">
            ...

当你在表格中使用CSS text-overflow:ellipsis时,它需要使用固定的表格布局,并设置width值,固定或百分比都可以。

就像这样:

.table {
    display: table;
    width: 100%;
    table-layout: fixed;
}

<强>最后:

从表格单元格中删除所有float属性,它们无法一起使用。

以下是更新的代码段:

body {width: 500px;} /*for demo only*/

.livePreview_resumeWrapper1 {
    border: 1px solid #000;
    box-shadow: 10px 10px 5px 0px #888888;
    direction: ltr;
    padding: 20px;
    width: 93%;
}
.resumeStyleWrapper25 {
    border-spacing: 0px 0px;
    display: table;
    font-family: verdana;
    font-size: 12px;
    width: 100%;
}
.resumeStyleOptimisedContainer25 {
    /* THIS CLASS ALTERNATES BETWEEN A ROW AND A NON-ROW DEPENDING ON THE STYLE REQUIREMENTS */
    background-color: #000;
    display: table-cell;
    font-weight: bold;
    min-width: 149px;
    padding: 2px;
    text-transform: uppercase;
    vertical-align: top;
    width: 18%;
}
.resumeStyleStandardHeadings25 {
    background-color: #000;
    color: #fff;
    display: table-cell;
    font-weight: bold;
    min-width: 149px;
    padding: 2px;
    text-transform: uppercase;
    vertical-align: top;
    width: 18%;
}
.resumeStyleStandardContainer25 {
    padding-left: 5px;
    width: 100%;
}
.resumeStyleStandardTableRow25 {
    display: table-row;
}
.resumeStyleStandardLabels25 {
    direction: ltr;
    display: table-cell;
    font-weight: bold;
    height: 100%;
    min-height: 25px;
    overflow: hidden;
    padding: 2px;
    padding-right: 10px;
    text-align: right;
    vertical-align: top;
    white-space: nowrap;
}
.resumeStyleDateStartContent25 {
    direction: ltr;
    display: table-cell;
    /* float: left; */
    padding: 2px;
    text-align: left;
    vertical-align: top;
    width: 20%;
}
.table {
    display: table;
    width: 100%;
    table-layout: fixed;
}
.ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.resumeStyleFinishDateLabel25 {
    background-color: #fff;
    color: #000;
    direction: ltr;
    display: table-cell;
    /* float: left; */
    font-weight: bold;
    padding: 2px;
    padding-right: 10px;
    text-align: left;
    vertical-align: top;
}
.resumeStyleDateFinishContent25 {
    direction: ltr;
    display: table-cell;
    /* float: left; */
    padding: 2px;
    text-align: left;
    vertical-align: top;
}
<div id="live_preview" class="livePreview_resumeWrapper1">
    <div class="resumeStyleWrapper25">
        <div class="resumeStyleOptimisedContainer25">
            <div class="resumeStyleStandardHeadings25">Emploi Détails d'histoire</div>
        </div>
        <div class="resumeStyleWrapper25">
            <div class="resumeStyleStandardTableRow25">
                <div class="resumeStyleStandardContainer25">
                    <div class="resumeStyleStandardTableRow25">
                        <div class="resumeStyleStandardLabels25">employeur</div>
                        <div class="resumeStyleStandardLabelContent25">french</div>
                    </div>
                    <div class="resumeStyleStandardTableRow25">
                        <div class="resumeStyleStandardLabels25">Date de demarrage</div>
                        <div class="resumeStyleStandardLabelContent25">
                            <div class="table">
                                <div class="resumeStyleStandardLabelContent25">
                                    <div class="ellipsis">01/2009 Date d'achevement</div>
                                </div>
                                <div class="resumeStyleStandardLabelContent25">
                                    <div class="ellipsis">11/2011 (2 annees, 10 mois)</div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

或者,查看 JsFiddle 演示,以便您可以轻松调整框架大小以进行检查:

Working Demo Here