空白属性打破了元素的宽度

时间:2015-10-10 02:13:35

标签: html css css3 overflow word-wrap

所以我想要实现的最初的事情是将两个元素并排堆叠在一起,其中两个元素将占据完整的可用高度,其中一个具有固定的宽度,并且容器的宽度变化。左边的元素包含一个图像(70px宽),但整个元素应该是200px宽。右边的元素应该只适合文本的一行,任何溢出的文本都应该被剪切显示...

HTML:

<div class="wrapper-wrapper">
    <div class="wrapper">
        <div class="left">
            <image src="http://s4.postimg.org/i1huts8vt/kitten.png" />
        </div>
        <div class="right">
            Text row 1 is a very freaking wide row with tons of text so deal with it or gtfo. Do I have enough text to fill this box now ?

        </div>
    </div>
</div> 

aaand css:

.wrapper-wrapper {
    width: 600px;
}
.wrapper {
    border:1px solid #aaa;
    margin:0 0 10px 0;
    display: table;
    width: 100%;
}

.left {
    width:200px;
    background-color:#eee;
}

.left, .right {
    display: table-cell;
    padding:5px;
}

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

可运行的演示:

http://jsfiddle.net/nLgqsxLg/2/

所以我决定使用display: table/table-cell的组合来实现垂直堆叠。并使用overflowtext-overflow剪辑溢出的文本。 问题是我设置white-space属性的时刻(根据PPK https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow)省略了元素的宽度。

更新

好的,我已经更新了代码。假设我的wrapper-wrapper宽度为600px。那么left div应该是200px宽,right应该填充剩下的任何空间(400px)。 right div中的文本应该被裁剪为400px,现在div增长以适应其中的所有内容。

它是怎样的: enter image description here

我希望如何:

enter image description here

1 个答案:

答案 0 :(得分:0)

好的,我真的只是明白你想要做什么。做,像:

&#13;
&#13;
div {
    border: 1px solid black;
    width: 50px;
    overflow: hidden;
    white-space: nowrap;
}
&#13;
<div>one two three four five six seven eight nine ten</div>
&#13;
&#13;
&#13;

基本上white-space: nowrap使它不会在空格处包裹。