设置最大长度为

设置最大长度为<TD>

问题描述:

我有一列有些用户没有输入空格(即:.......................... ...............),它正在拉伸我的TD列。设置最大长度为<TD>

有没有一种方法可以通过一个简单的选项在html中强制换行符?如果不是这样,我认为我必须自己打破阵容,这不会是最佳选择,因为我不得不确定最好的地方来打破界限,我不想这样做。

我期待的东西,将在3个主要的浏览器上运行(IE/Firefox/Safari)

这里是我的代码:

<td valign="top"> 
    <br> 
    <strong><?php echo $common->stripHtml($row['one_liner']); ?></strong> 
    <br> 
    <hr> 
    <?php 
     if (strlen($row['self_description']) > 240) 
     { 
      echo substr($common->stripHtml($row['self_description']), 0, 240)."... <a href='viewprofile.php?i=".$row['user_id']."'>more</a>"; 
     } 
     else 
     { 
      echo $common->stripHtml($row['self_description']); 
     } 
    ?> 
</td> 

固定宽度的细胞与隐藏溢出内容应该做的伎俩

的CSS合并:

table { 
    table-layout:fixed; 
} 

table td { 
    overflow:hidden; 
} 

瞄准了这一HTML:

<!-- This width specification ought to be in the top-most <td> or <th> --> 
<td width="100" >...</td> 
+0

这将工作,但如果你真的想看到额外的文字呢?如果我有abcdefghijklmnopqrstuvwxyz并省略了最后五个字符,我不能将它标为完整的字母表。 – 2009-06-11 15:03:04

+0

@Dave确实更像是一个设计决策。如果您标注“全字母”,请留出26个字母的空间。 但是,您始终可以在TD上设置标题属性。 – Triptych 2009-06-11 15:05:42

使用固定宽度的单元?

<td valign="top" width="100px"> 
+1

width属性不应该有一个单位,除非它是一个百分比(它不是CSS),不建议使用,并且不会阻止单元格的内容调整其大小。 – Quentin 2009-06-11 15:26:37

当你手工能使用PHP添加换行符,您还可以使用“overflow”CSS属性预测细胞如何显示其数据。

如果您设置的溢出为“自动”,滚动条应该在小区内出现,如果你设置的溢出为“隐藏”,其内容将被隐藏超过您设置的宽度。

“我必须确定最好的地方断行,我不想这样做。”

你一针见血的头部有,HTML同样无法确定断行的最佳场所。也许正如你知道可能的值,你可以确定一套允许休息的规则。

我会选择一个固定宽度的字体来显示文本,然后固定数目的字符的后插入拆分。

您可以使用表格单元格的CSS溢出属性,但这不会强制换行。

你可以插入一些

&shy; 

实体,但浏览器的支持是不完整。

最好的解决方案将是一个正则表达式通过插入空间分手的20个字符的任何连续序列。它看起来不会很漂亮,但它比抛出一切都好。

没有css属性可以分隔没有空白的行。

通过结合“宽度:XXX”,一个“溢出:隐藏”和“表显示:固定的”,可以隐藏在你的细胞中不需要的内容。

另一个“修复”可能是使用JavaScript。当引发特定的输入元素的.blur()事件时,在每个第x个字符或每个第x个字符之后插入中断。尽管如此,我个人不会称之为“伟大”的解决方案。

然后,我假设您有能力监视通过您的网站发送的提交内容。如果是这种情况,那么你可以通过PHP/C#操作数据 - 这将是理想的方法。