2009-06-11 153 views
2

我有一列有些用戶沒有輸入空格(即:.......................... ...............),它正在拉伸我的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> 

回答

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> 
+0

這將工作,但如果你真的想看到額外的文字呢?如果我有abcdefghijklmnopqrstuvwxyz並省略了最後五個字符,我不能將它標爲完整的字母表。 – 2009-06-11 15:03:04

+0

@Dave確實更像是一個設計決策。如果您標註「全字母」,請留出26個字母的空間。 但是,您始終可以在TD上設置標題屬性。 – Triptych 2009-06-11 15:05:42

-2

使用固定寬度的單元?

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

width屬性不應該有一個單位,除非它是一個百分比(它不是CSS),不建議使用,並且不會阻止單元格的內容調整其大小。 – Quentin 2009-06-11 15:26:37

1

當你手工能使用PHP添加換行符,您還可以使用「overflow」CSS屬性預測細胞如何顯示其數據。

如果您設置的溢出爲「自動」,滾動條應該在小區內出現,如果你設置的溢出爲「隱藏」,其內容將被隱藏超過您設置的寬度。

0

「我必須確定最好的地方斷行,我不想這樣做。」

你一針見血的頭部有,HTML同樣無法確定斷行的最佳場所。也許正如你知道可能的值,你可以確定一套允許休息的規則。

我會選擇一個固定寬度的字體來顯示文本,然後固定數目的字符的後插入拆分。

0

您可以使用表格單元格的CSS溢出屬性,但這不會強制換行。

你可以插入一些

&shy; 

實體,但瀏覽器的支持是不完整。

最好的解決方案將是一個正則表達式通過插入空間分手的20個字符的任何連續序列。它看起來不會很漂亮,但它比拋出一切都好。

0

沒有css屬性可以分隔沒有空白的行。

通過結合「寬度:XXX」,一個「溢出:隱藏」和「表顯示:固定的」,可以隱藏在你的細胞中不需要的內容。

0

另一個「修復」可能是使用JavaScript。當引發特定的輸入元素的.blur()事件時,在每個第x個字符或每個第x個字符之後插入中斷。儘管如此,我個人不會稱之爲「偉大」的解決方案。

然後,我假設您有能力監視通過您的網站發送的提交內容。如果是這種情況,那麼你可以通過PHP/C#操作數據 - 這將是理想的方法。