Şu anda sıralanmış sütunun başlığının bir simge görüntülediği bir "sıralanabilir" tablo var:
Sıralama simgesi metnin sonunda görüntülenecektir (yani, LTR / RTL'yi destekliyoruz). Şu anda kullanıyorum display:flex
. Ancak, tablo genişliği küçülürse ve sütun başlığı metni sarılmaya başlarsa, hangi sütunun sıralandığı net olmayan belirsiz durumlara girerim:
Bunun yerine aşağıdaki gereksinimleri karşılamak istiyorum:
- Simge her zaman metnin en uzun satırının "ucu" ile "sıkıca" hizalanır (kaydırma hücresi / düğmesi daha geniş olsa bile).
- Simge ayrıca metnin son satırıyla aşağıya hizalanmalıdır.
- Simge asla kendi çizgisine sarılmamalıdır.
- Düğme mevcut olmalı ve hücrenin tüm genişliğini kaplamalıdır. (İç tasarım ve işaretleme gerektiğinde değişebilir.)
- CSS ve HTML yalnızca mümkünse.
- Bilinen / ayarlanan sütun genişliklerine veya başlık metnine güvenemez.
Örneğin:
Ben farklı kombinasyonları bir grup ile deneme oldum display: inline/inline-block/flex/grid
, position
, ::before/::after
ve hatta float
(!) Ancak istenen davranışı elde edemezsiniz. İşte benim mevcut kod sorunu gösteren:
.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>
Bu kullanıcı arayüzünü nasıl gerçekleştireceğiniz hakkında bir fikriniz var mı? Bu muhtemelen tablo veya düğme şeyler ile ilgisi yoktur. Gerçekten ( Thing A
sıkı Thing B
bir genişlik ve sarılmış metin Thing A
olabilir ) hizalanmış "sıkı" alt / uç gerekir ama kendi bir çizgi üzerine sarın olamaz.
Ben flex
değerleri ile karışıklık denedim ama herhangi bir kombinasyon ya metin sargı erken yapar ya da yakında değil.