私はcssにまったく慣れていないので、この問題の解決策を何時間も探していました。サイズ変更可能なコンテナに固定レイアウトテーブルがあります。2つのテキストがあるサイズ変更列があります。最初の列はtext-overflow:ellipseを実行し、2番目の列は常に表示する必要があります(可能な場合)。収まらない場合は、テーブルセルにすべてのテキストを表示するのではなく、最後の5文字を表示する必要があります。tdに2つのスパンを入れて、2番目に幅を与えるのは悪いと思いましたが、幅は無視されます。要素をフロートしようとすると(左にフロートすることしかできません。右にフロートすると、テキストがほとんどない長い列の最後に最後の5文字が配置されますが、これは問題ありません)、左ですが、最初のdivが取得されません。小さいので、text-overflow:ellipseは適用されません。
たとえば、tdが短い場合に必要です。
|Hello budd...ight?|
と
|Hello buddy ho...ight?|
しかし、tdが長い場合:
|Hello buddy how is it going tonight? |
これはかなり一般的な要件のようですが、どうすればそれを達成できますか?私はJavaScriptを必要としません、それがcssによって解決できると確信しています、そして多分いくつかの余分なdiv ...
私のhtml:
<table style="table-layout:fixed">
<colgroup>
<col/>
<col width="200px"/>
</colgroup>
<tr>
<td>
<span class="first">Hello buddy how is it going ton</span>
<span class="second">ight?</span>
</td>
<td></td>
</tr>
</table>
私のCSS:
table
{
width: 90%;
margin: 10px;
}
tr
{
height: 100px;
}
td
{
width: 50%;
border: 1px solid blue;
padding: 5px;
height: 100px;
vertical-align: top;
position: relative;
while-space:nowrap;
}
span.first {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border: 1px solid red;
}
span.second
{
border: 1px solid green;
}
これを達成する方法はありますか?どんな助けでも大歓迎です。ありがとう