我有一个列,其中一些用户没有输入空格(即:................................. ........)它正在拉伸我的TD专栏。
有没有办法用简单的选项强制html中的换行符?如果没有,我想我将不得不打破自己的阵容,这不是最佳的,因为我必须确定打破一条线的最佳位置,我不想那样做。
我正在寻找能在3种主要浏览器中运行的东西(即/ 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>
答案 0 :(得分:11)
固定宽度的单元格与隐藏溢出内容相结合应该可以解决这个问题
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>
答案 1 :(得分:1)
虽然您可以使用PHP手动添加换行符,但您也可以使用“overflow”CSS属性来确定单元格应如何显示其数据。
如果将溢出设置为“auto”,则单元格中会出现一个滚动条,如果将溢出设置为“hidden”,则内容将隐藏在您设置的宽度之外。
答案 2 :(得分:0)
“因为我必须确定打破一条线的最佳位置,我不想这样做。”
你已经在那里击中了钉子,HTML同样无法确定打破这条线的最佳位置。也许您知道可能的值,您可以确定一组允许休息的规则。
我会选择固定宽度的字体来显示文本,然后在固定数量的字符后插入一个间隔。
答案 3 :(得分:0)
您可以在表格单元格上使用CSS overflow属性,但这不会强制换行。
您可以插入一些
­
实体,但浏览器支持不完整。
最好的解决方案是通过插入空格来分解任意连续20个字符序列的正则表达式。它看起来不会很漂亮,但它最好不要把它全部扔掉。
答案 4 :(得分:0)
没有css属性可以在没有空格的情况下断行。
通过组合“width:xxx”,“overflow:hidden”和“table-display:fixed”,您可以隐藏单元格中不需要的内容。
答案 5 :(得分:0)
另一个“修复”可能是使用Javascript。当引发特定的input-element的.blur()事件时,在每个第x个char或每个第x个单词之后插入break。我个人不会称之为“伟大”的解决方案。
然后,我假设您有能力监控通过您网站提交的内容。如果是这种情况,那么您可以通过PHP / C#操作数据 - 这将是理想的方法。
答案 6 :(得分:-2)
使用固定宽度的单元格?
<td valign="top" width="100px">