设置最大长度

时间:2009-06-11 14:51:59

标签: php html

我有一个列,其中一些用户没有输入空格(即:................................. ........)它正在拉伸我的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>

7 个答案:

答案 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属性,但这不会强制换行。

您可以插入一些

&shy;

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

最好的解决方案是通过插入空格来分解任意连续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">