2009-06-11 3 views
2

私はいくつかのユーザーがスペースを入力していない列を持っています(例:.......................... ...............)、それは私のTDの列を伸ばしている。最大長を設定する<TD>

簡単なオプションでhtmlで強制改行する方法はありますか?もしそうでなければ、ラインを壊す最高の場所を決めなければならないので、最適ではないラインを自分自身で壊さなければならないと思うし、そうしたくない。私はここでは3つの主要なブラウザ(IE/Firefoxの/サファリ)で

に動作します何かを探しています

は私のコードは次のとおりです。

<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

固定幅のセル

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

これは機能しますが、余分なテキストを実際に見たいと思ったらどうしますか?私がabcdefghijklmnopqrstuvwxyzを持っていて、その最後の5文字を​​省略すると、それは完全なアルファベットにすることはできません。 –

+0

@Daveこれは本当にデザインの決定のほうです。 "完全なアルファベット"にラベルを付ける場合は、26文字分のスペースを確保してください。 まだ、TDにtitle属性を設定できます。 – Triptych

+0

これは私のアプリケーションではうまくいきます。ユーザーが書き込んだ内容の多くを見たい場合は、いつでも戻って実際のテキストを入力できます。ありがとう:D – MichaelICE

-2

使用固定幅のセル?

table { 
    table-layout:fixed; 
} 

table td { 
    overflow:hidden; 
} 

このHTMLターゲット::トリック

にCSSをすべきオーバーフローコンテンツを隠すと組み合わせる

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

width属性はパーセンテージ(CSSではない)であり、推奨されなくなり、セルのコンテンツのサイズ変更を妨げません。 – Quentin

1

を手動でもできますがPHPで改行を追加するには、 "overflow" CSSプロパティを使用してde細胞がそのデータをどのように表示すべきかを述べる。

オーバーフローを "auto"に設定すると、スクロールバーがセル内に表示され、オーバーフローを "hidden"に設定すると、設定した幅を超えてコンテンツが非表示になります。

0

"私はラインを壊すための最良の場所を決めなければならないので、私はそれをしたくありません。"

あなたは頭の釘を打ったことがありますが、HTMLは同じようにラインを壊すのに最適な場所を特定できません。可能性のある値を知っているので、ブレークを許可する一連のルールを決定できます。

固定幅フォントを選択してテキストを表示し、固定数の文字の後に改行を挿入します。

0

表のセルでCSSオーバーフロープロパティを使用できますが、改行は強制されません。

あなたは、いくつかの

&shy; 

エンティティを挿入することができますが、ブラウザのサポートは斑状です。

最高の解決策は、スペースを挿入して20文字の連続するシーケンスを分割する正規表現です。それはかなり見えませんが、それをすべてラインから投げるよりも優れています。

+0

Firefox 3がこの要素をサポートするようになりました。 – Josh

0

cssプロパティは、空白のない行を改行できません。

"width:xxx"と "overflow:hidden"と "table-display:fixed"を組み合わせることで、セル内の不要なコンテンツを隠すことができます。

0

もう1つの「修正」はJavascriptを使用することでした。その特定の入力要素の.blur()イベントが発生すると、x番目の文字ごとに、またはx番目の単語ごとに改行が挿入されます。私は個人的にはこれを「偉大な」解決策とは呼んでいません。

また、私はあなたのサイトを経由して送信された投稿を監視する能力があると仮定しています。この場合、PHP/C#を介してデータを操作することができます。これが理想的な方法です。

関連する問題