2017-11-21 13 views
0

私はテーブルセルを持っており、それを正確に2行にしたいと思います。テキストのオーバーフローが発生します。私はここでアンカータグのテキストを表のセルにクリップする方法はありますか?

<table> 

    <tr> 
    <td> 
     <a href="javascript:void(0);"> 
     hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world</a> 
    </td> 
    </tr> 
</table> 

CSS

td { 
    height:2em; 
    text-overflow:clip; 
    background-color:cyan; 
} 

はフィドルがhttps://jsfiddle.net/u1cp1r0v/

である。しかし、それは私が望んで行いません。このコードをしようとしています。

何が間違っているのか分かりますか?

おかげ

+0

[テーブルセルの内容の最大高さの設定](https://stackoverflow.com/questions/7045653/setting-max-height-for-table-cell-contents) – jmargolisvt

答えて

0

だけの純粋なCSSのみで比較的クロスブラウザ複数行の省略記号ソリューションがthis oneですが、それには限界/欠点を有しています。詳細はthis articleをご覧ください。


テキストが必要な行の最大数を超えた場合、あなたはあなたが必要とするすべては、右下の隅に省略記号記号についてはあまり気にしない場合:もちろん

height: lines * line-height; 
overflow: hidden; 

lines * line-heightを有効な高さの値に置き換える必要があります。

それは<td> sが、そのすべての兄弟が背が高いということになります<tr>の中に、特別な書式のルールと1背の高いセルを持っているように、<td>要素ではなく、各セルの内容のラッパーに、このCSSを適用する方が良いでしょうセットheight

line-heightは単位のない値が渡されたときの単位としてemを前提としています(ただし、正しく、他の長さのタイプのCSS単位を解析)し、ほとんどのブラウザはインライン(通常の)テキストの1.3にそれをデフォルトに注意してください。

しかし、ブートストラップは、例えば、10pxremを設定するための決定と同様に、開発者のための人生を容易にするために、彼らの努力の一環として、(通常のテキストのために24pxが得られる)、1.5em時にデフォルトでそれを設定します。

また、まともなJavaScriptソリューションもありますが、質問をする前に行った徹底的な(再)検索の最中に既に完了していると思います。

+0

これは可能ではないようです内部にaaタグを持つtdタグで作業します。 – omega

+0

@omega:***これは***の意味ですか?私はあなたに2つの解決策を与えました。 2つ目は、セル内容のラッパーに適用する必要があると具体的に説明しました。最初の解決策にも当てはまります。表形式以外のデータに '

'要素を使用する場合、これは欠点です。セルの内容を囲むラッパーが必要です。応答性はもちろん。 –

関連する問題