これは簡単な作業のように見えましたが、とにかく難しいことがわかりました。
1 行 2 列のテーブル。テーブル幅は 100% とする。
列 1: 長いテキストが含まれる場合があります。1 行のみで表示し、はみ出したテキストは切り取ります。この列の幅は、テーブル全体の幅から列 2 の幅を差し引いたものとします。
列 2: 右の列の幅は、テキストが正確に収まるようにする必要があります。テキストは右揃えにする必要があります。
つまり、2 列目のテキストが 2 つの列の幅を定義します。
1 列目と 2 列目のテキストは動的であるため、絶対幅は機能しません。テーブル全体の幅はブラウザー ウィンドウの幅であり、これはモバイル ブラウザーを含む最新のすべてのブラウザーで機能する必要があります。
テーブルを使用しようとしましたが、div のみを使用しようとしました。どちらのアプローチも有望に見えますが、まだ完全には解決していません。
これが私が試したサンプルコードです: (問題: ブラウザが狭いとテーブルが 100% 以上広くなります)。
<table>
<tr>
<td class ="td1">
This is a table. This is a very long text. Does it get clipped?
</td>
<td class ="td2">
SHOW THIS
</td>
</tr>
</table>
それに付随するいくつかのCSS:
table {
width: 100%;
}
.td1 {
width: auto;
overflow: hidden;
white-space: nowrap;
}
.td2 {
white-space: nowrap;
overflow: visible;
text-align: right;
}
div
: (問題: 列 2 が列 1 の下に捨てられている)
<div class="div1">
<div class="div2">
This is a very long text in a div tag. Does it get clipped?
</div>
<div class="div3">
SHOW THIS
</div>
</div>
それに付随するいくつかのCSS:
.div1 {
display: inline-block;
width: 100%;
}
.div2 {
width: auto;
overflow: hidden;
white-space: nowrap;
display: inline-block;
}
.div3 {
display: inline-block;
white-space: nowrap;
float: right;
}
これは私には難しい問題のように見えます。誰でも良い解決策を見つけることができますか?
アップデート:
ここに html ファイル全体を示します。誰でも簡単に試すことができます。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style>
.div1 {
display: inline-block;
width: 100%;
}
.div2 {
width: auto;
overflow: hidden;
white-space: nowrap;
display: inline-block;
}
.div3 {
display: inline-block;
white-space: nowrap;
float: right;
}
table {
width: 100%;
}
.td1 {
width: auto;
overflow: hidden;
white-space: nowrap;
}
.td2 {
white-space: nowrap;
overflow: visible;
text-align: right;
}
</style>
</head>
<body>
<div class="div1">
<div class="div2">
This is a very long text. Does it get clipped?
</div>
<div class="div3">
SHOW THIS
</div>
</div>
<br/><br/><br/>
<table>
<tr>
<td class ="td1">
This is a table. This is a very long text. Does it get clipped?
</td>
<td class ="td2">
SHOW THIS
</td>
</tr>
</table>
</body>
</html>