你不知道我写这篇文章的时候经历了多少的折磨。
我最近在写一个表格,用于呈现文章,一个表四个列,分别是文章标题,发布时间,审核情况和操作,因为文章的标题是不定长的,所以我想要实现的一个效果就是,将文章标题那列设置为固定的长度,如果标题长度超出单元格的长度,不换行,而是将超出的内容隐藏并显示为三个小点,我一开始就这么写:
.title-ceil {
width: 150px;
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 超出的内容隐藏 */
text-overflow: ellipsis; /* 当内容溢出时显示省略号 */
}
这个title-ceil就是我的标题的单元格的类,然后我发现没有效果,它还是自由伸缩的,单元格的长度是按照最长的那个单元格的长度呈现的,我以为我没选中这个单元格,然后f12查看了一下元素,发现是设置对了,然后一个偶然,我发现是这样的逻辑,如果所有的标题都没超出我规定的这个长度,就按照我设置的长度,如果超出了,就按照最长的长度,但这不是我想要的效果,这些overflow,text-overflow属性也没生效呀,然后我又去查阅资料,各种测试,发现还要给table写一个样式:
table {
table-layout: fixed;
}
但是添加了这个样式之后仍然没有生效,然后我又找啊找,说还得添加一个属性:
table {
table-layout: fixed;
width: 1000px;
}
然后我又测试,还是没生效,然后我看了看我的表格和别人的表格,别人的都是<tr><td></td></tr>,而我还有一个<th></th>标签,在我给th标签也绑定上了title-ceil类的时候,终于,这个表格能够如我所愿呈现相应的内容了。
忘了一点,在table中调整margin是没有作用的,调整上下单元格距离可以使用padding.