現在ソートされている列のヘッダーにアイコンが表示される「ソート可能な」テーブルがあります。
ソートアイコンはテキストの最後に表示されます(つまり、LTR / RTLをサポートしています)。現在を使用していdisplay:flex
ます。ただし、テーブルの幅が小さくなり、列ヘッダーのテキストが折り返され始めると、並べ替えられている列が明確でないあいまいな状態になります。
代わりに、次の要件を満たしたいと思います。
- アイコンは常に、テキストの最長の行の「端」に「ぴったり」と位置合わせされます(ラッピングセル/ボタンが広い場合でも)。
- アイコンは、テキストの最後の行と下揃えにする必要もあります。
- アイコンはそれ自体の行に折り返してはなりません。
- ボタンが存在し、セルの幅全体に及ぶ必要があります。(内部のスタイル設定であり、マークアップは必要に応じて変更できます。)
- CSSとHTMLは、可能な場合のみ。
- 既知の/設定された列幅やヘッダーテキストに依存することはできません。
例えば:
私はの異なる組み合わせの束を試してきましたdisplay: inline/inline-block/flex/grid
、position
、::before/::after
、とさえfloat
(!)が、所望の動作を得ることができません。これが問題を示す私の現在のコードです:
.table {
border-collapse: collapse;
width: 100%;
}
.thead {
border-bottom: 3px solid #d0d3d3;
}
.thead .tr {
vertical-align: bottom;
}
.button {
padding: 1rem;
text-align: start;
font-family: Arial, "noto sans", sans-serif;
font-size: 0.875rem;
border: 0;
background-color: transparent;
width: 100%;
display: flex;
align-items: flex-end;
font-weight: bold;
line-height: 1.4;
}
.sort {
width: 1.25rem;
height: 1.25rem;
}
<table class="table">
<thead class="thead">
<tr class="tr">
<th class="th">
<button class="button">
Age
<span class="sort"></span>
</button>
</th>
<th class="th">
<button class="button">
Favorite Food
<span class="sort"></span>
</button>
</th>
<th class="th" aria-sort="ascending">
<button class="button">
Favorite Color
<span class="sort">
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="presentation" style="width: 1.25rem; height: 1.25rem;"> <path d="M11.4709 4.2136C11.7638 3.92071 12.2386 3.92071 12.5315 4.2136L17.1277 8.8098C17.4206 9.10269 17.4206 9.57756 17.1277 9.87046C16.8348 10.1633 16.3599 10.1633 16.0671 9.87046L12.7512 6.55459V19.25C12.7512 19.6642 12.4154 20 12.0012 20C11.587 20 11.2512 19.6642 11.2512 19.25V6.55459L7.93533 9.87046C7.64244 10.1633 7.16756 10.1633 6.87467 9.87046C6.58178 9.57756 6.58178 9.10269 6.87467 8.8098L11.4709 4.2136Z"> </path></svg>
</span>
</button>
</th>
<th class="th">
<button class="button">
Likes Neil Diamond?
<span class="sort"></span>
</button>
</th>
</tr>
</thead>
</table>
このUIを実現する方法に関するアイデアはありますか?これはおそらく、テーブルやボタンに関するものとはほとんど関係ありません。本当に私は(フレキシブルな幅で、テキストを折り返すことができる)にThing A
揃えられた「しっかり」下/端が必要ですThing B
がThing A
、それ自体の行に折り返すことができません。
私はflex
値をいじってみましたが、どのような組み合わせでもテキストの折り返しが時期尚早になるか、十分に早くなりません。