मेरे पास एक "सॉर्टेबल" टेबल है जहां वर्तमान में सॉर्ट किए गए कॉलम का हेडर एक आइकन दिखाता है:
सॉर्ट आइकन पाठ के अंत में प्रदर्शित किया जाना है (यानी, हम LTR / RTL का समर्थन कर रहे हैं)। मैं वर्तमान में उपयोग कर रहा हूं display:flex
। हालाँकि, यदि टेबल की चौड़ाई सिकुड़ जाती है और कॉलम हेडर टेक्स्ट रैप करना शुरू कर देता है, तो मैं अस्पष्ट राज्यों में भाग लेता हूँ जहाँ यह स्पष्ट नहीं होता है कि कौन सा कॉलम सॉर्ट किया गया है:
इसके बजाय मैं निम्नलिखित आवश्यकताओं को पूरा करना चाहूंगा:
- आइकन हमेशा "कसकर" पाठ की सबसे लंबी रेखा के "अंत" के साथ गठबंधन किया जाता है (भले ही रैपिंग सेल / बटन व्यापक हो)।
- आइकन को पाठ की अंतिम पंक्ति के साथ नीचे-संरेखित किया जाना चाहिए।
- आइकन को कभी भी अपनी लाइन पर नहीं लपेटना चाहिए।
- बटन मौजूद होना चाहिए और सेल की पूरी चौड़ाई का विस्तार करना चाहिए। (यह आंतरिक स्टाइल है और मार्कअप आवश्यकतानुसार बदल सकता है।)
- यदि संभव हो तो सीएसएस और एचटीएमएल ही।
- यह ज्ञात / सेट कॉलम की चौड़ाई या हेडर टेक्स्ट पर भरोसा नहीं कर सकता है।
उदाहरण के लिए:
मैं के विभिन्न संयोजनों का एक समूह के साथ प्रयोग किया गया है 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
मानों के साथ खिलवाड़ करने की कोशिश की है, लेकिन कोई भी संयोजन या तो पाठ को समय से पहले लपेट देता है या जल्द ही पर्याप्त नहीं होता है।