所以我想要实现的第一件事是将两个元素并排堆叠在一起,这两个元素将采用完整的可用高度,其中一个元素具有固定宽度并且容器的宽度变化。左侧元素包含一个图像(宽度为70px),但整个元素的宽度应为200px。正确的元素应该只适合文本的一行,并且任何溢出的文本应该被剪切,显示为...
。white-space property打破元素宽度
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)时,元素的宽度被省略。
UPDATE
好了,所以我已经更新的代码。假设我的wrapper-wrapper
宽度为600像素。那么left
div应该是200px宽,并且right
应该填充剩下的空间(400px)。 right
div中的文本应该剪裁到400px
,现在div增长以适应其中的所有内容。
我怎么想它是:
不明白你的问题。 – frosty
如果我的理解正确,并且您希望元素之间没有空格,那么您必须将字体大小设置为0,然后才能将字体大小设置为您想要的任何字体大小内容。 – frosty
你想改变img的宽度吗?为什么不把图像的宽度设置为你想要的px呢? o.O – frosty