【发布时间】:2013-05-05 12:14:00
【问题描述】:
这开始让我发疯了,感谢任何帮助!
我希望每个未“固定”的<li> 的最大宽度为 150 像素,最小宽度为 10 像素,但是当浏览器缩小时,它们应该缩小以修复(并且宽度相等)。我还希望每个非“固定”<li> 中的文本具有 text-overflow: ellipsis。
我似乎无法让这个工作,到目前为止我有:
HTML:
<ul>
<li class="fixed">Fixed Size</li>
<li>
<div>
<span>this text is very very long and it goes on and on and on and on but does not wrap</span>
</div>
</li>
<li>
<div>
<span>short</span>
</div>
</li>
<li>
<div>
<span>one more tab</span>
</div>
</li>
<li>
<div>
<span>another tab</span>
</div>
</li>
</ul>
CSS:
ul {
margin: 0;
padding: 0;
list-style: none;
display: table;
border-spacing: 6px 0px;
}
li {
display: table-cell;
background-color: red;
width: 150px;
}
li > div {
overflow: hidden;
text-overflow: ellipsis;
}
li > div > span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
li.fixed {
width: 100px;
min-width: 100px;
text-align: center;
}
更新:这显示了我对列的追求,但正如您所见,省略号并未隐藏文本:
更新:这越来越近了,但仍然没有省略号:-(
更新:已解决解决方案发布于下方。
【问题讨论】:
-
HTML结构可以改吗?
-
@VimalStan 是的,可以更改 html。
-
你需要椭圆做什么? html 只会破坏文本以适合您的 li (一旦您删除空格:nowrap;)。您是否更愿意隐藏部分文本而不是将文本分成几行?
-
@bjelli 是的,要求是文本不换行,并在没有足够空间时用省略号向右隐藏。
-
@magritte 你是对的,删除了答案。如果我找到解决方案会发布一个。