所以我想要实现的最初的事情是将两个元素并排堆叠在一起,其中两个元素将占据完整的可用高度,其中一个具有固定的宽度,并且容器的宽度变化。左边的元素包含一个图像(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
的组合来实现垂直堆叠。并使用overflow
和text-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增长以适应其中的所有内容。
我希望如何:
答案 0 :(得分:0)
好的,我真的只是明白你想要做什么。做,像:
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;
基本上white-space: nowrap
使它不会在空格处包裹。