我有一张宽度为200px的桌子。
它有两列:
问题:当Title +徽标超过200px时,我只需要限制标题。
------------------------
|Title |Logo |
------------------------
|Helloooo...|img |
------------------------
限制仅限HTML和CSS
我尝试不同的想法:
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
table-layout:fixed;
...
我得到的唯一结果是:
------------------------
|Title |Logo |
------------------------
|Helloooooooooooo|img | -> more than 200px
------------------------
答案 0 :(得分:4)
/ 将CSS代码编写为 /
.appadd {
white-space: nowrap;
overflow: hidden;
width: 180px;
height: 30px;
text-overflow: ellipsis;
}
答案 1 :(得分:2)
您可以使用 CSS word-wrap
来分割那些非常大的字词:
请参阅此working Fiddle示例!
.title {
width: 100px; /* adjust the value to fit your needs */
word-wrap: break-word;
display: inline-block;
}
注意:强>
TD
设置display:inline-block
。word-wrap
在她溢出的时候打破了这个词
包装器,你需要给TD
。您可以查看浏览器兼容性表here at MDN。
答案 2 :(得分:0)
我相信这不适用于HTML和CSS,如果你想在客户端进行,你可以使用javascript,获取Title单元格的宽度,然后相应地修剪文本,为此你可以使用Substring function,你可能想要使用像jQuery这样的JavaScript库
答案 3 :(得分:0)
CSS解决方案在某种程度上对我有用,但在浏览器之间却不一致。因此,我接受了Rafael的建议并使用了Substring。就我而言,Html.Raw没有风险。这是我的代码-可能不是很好,但是效果很好:
@foreach (var item in Model)
{
var exploreText = item.ExploreText;
var exploreTextShort = "";
if (exploreText != null)
{
if (exploreText.ToString().Length > 15)
{
exploreTextShort = exploreText.ToString().Substring(0, 15);
}
else { exploreTextShort = exploreText; }
}
<tr>
<td>
@Html.Raw(exploreTextShort)
</td>
</tr>
}