अच्छा ओल ' <table>
सारणीबद्ध डेटा दिखाने के लिए टैग सबसे सिमेंटिक HTML है। लेकिन मुझे यह नियंत्रित करना बहुत कठिन लगता है कि तालिका कैसे प्रस्तुत की जाती है, विशेष रूप से एक गतिशील वातावरण में स्तंभ की चौड़ाई जहां आप नहीं जानते होंगे कि प्रत्येक तालिका कक्ष में कितनी सामग्री जा रही है। कुछ मामलों में, एक कॉलम सुपर वाइड होता है जबकि अन्य को ऊपर की ओर खंगाला जाता है। दूसरी बार, हमें समान चौड़ाई मिलती है, लेकिन एक कॉलम की कीमत पर जिसमें अधिक सामग्री होती है और अधिक स्थान की आवश्यकता होती है।
लेकिन मुझे एक सीएसएस ट्रिक्स-वाई वर्कअराउंड मिला जो चीजों को थोड़ा आसान बनाने में मदद करता है। इस पोस्ट में मैं आपको यही दिखाना चाहता हूं।
समस्या
सबसे पहले हमें यह समझने की जरूरत है कि ब्राउज़र द्वारा लेआउट को कैसे हैंडल किया जाता है। हमारे पास है table-layout
सीएसएस में संपत्ति यह परिभाषित करने के लिए कि तालिका को प्रत्येक तालिका कॉलम के लिए चौड़ाई कैसे वितरित करनी चाहिए। यह दो मानों में से एक लेता है:
auto
(डिफ़ॉल्ट)fixed
आइए तालिका के स्तंभों पर किसी भी चौड़ाई को परिभाषित किए बिना प्रारंभ करें। दूसरे शब्दों में, हम ब्राउज़र को यह तय करने देंगे कि आवेदन करके प्रत्येक कॉलम को कितनी चौड़ाई देनी है table-layout: auto
उस पर सीएसएस में। जैसा कि आप देखेंगे, ब्राउजर एल्गोरिथम के साथ अपना सर्वश्रेष्ठ करता है, इसे प्रत्येक कॉलम के बीच पूरी उपलब्ध चौड़ाई को विभाजित करना होता है।
अगर हम एक ऑटो टेबल लेआउट को स्वैप करते हैं table-layout: fixed
, तब ब्राउज़र केवल उपलब्ध कुल स्थान को स्तंभों की कुल संख्या से विभाजित करेगा, फिर उस मान को प्रत्येक स्तंभ की चौड़ाई के रूप में लागू करेगा:
लेकिन क्या होगा अगर हम अपने कॉलम की चौड़ाई को नियंत्रित करना चाहते हैं? हमारे पास है <colgroup>
तत्व मदद करने के लिए! इसमें व्यक्तिगत शामिल हैं <col>
तत्व जिनका उपयोग हम प्रत्येक कॉलम के लिए आवश्यक सटीक चौड़ाई निर्दिष्ट करने के लिए कर सकते हैं। आइए देखें कि यह कैसे काम करता है table-layout: auto
:
मैंने चित्रण के लिए शैलियों को रेखांकित किया है।
ब्राउजर इनलाइन चौड़ाई का सम्मान नहीं कर रहा है क्योंकि जोड़े जाने पर वे उपलब्ध टेबल स्पेस की मात्रा से अधिक हो जाते हैं। नतीजतन, तालिका स्तंभों से स्थान चुरा लेती है ताकि सभी स्तंभ दिखाई दे सकें। यह बिल्कुल ठीक डिफ़ॉल्ट व्यवहार है।
कैसे करता है <colgroup>
के साथ काम table-layout: fixed
. चलो पता करते हैं:
ये बिल्कुल अच्छा नहीं लगता। बाकी कॉलम के लिए एक निश्चित चौड़ाई बनाए रखते हुए हमें थोड़ा फ्लेक्स करने के लिए सामग्री के एक समूह के साथ कॉलम की आवश्यकता होती है। निश्चित table-layout
मूल्य चौड़ाई का सम्मान करता है - लेकिन इतना अधिक कि यह उस स्तंभ के स्थान को खा जाता है जिसे सबसे अधिक स्थान की आवश्यकता होती है ... जो हमारे लिए नहीं है।
इसे आसानी से हल किया जा सकता है अगर हम केवल एक सेट कर सकें min-width
ए के बजाय कॉलम पर width
. इस तरह, कॉलम कहेगा, "जब तक हम इस न्यूनतम मूल्य तक नहीं पहुंच जाते, तब तक मैं आप सभी को अपनी चौड़ाई में से कुछ दे सकता हूं।" तब तालिका बस अपने कंटेनर को ओवरफ्लो कर देगी और शेष तालिका को प्रदर्शित करने के लिए उपयोगकर्ता को एक क्षैतिज स्क्रॉल देगी। लेकिन दुर्भाग्य से, min-width
तालिका के स्तंभों का सम्मान नहीं किया जाता है <col>
तत्व।
समाधान
समाधान नकली ए है min-width
और हमें इसे करने के लिए थोड़ा रचनात्मक होना चाहिए।
हम एक खाली जोड़ सकते हैं <col>
हमारे लिए दूसरे कॉलम के रूप में <colgroup>
HTML में और लागू करें colspan
विशेषता पहले कॉलम पर ताकि पहला कॉलम दोनों कॉलम के लिए जगह ले ले:
<table> <colgroup> <col class="col-200" /> <col /> <col class="col-input" /> <col class="col-date" /> <col class="col-edit" /> </colgroup> <thead> <tr> <th colspan="2">Project name</th> <th>Amount</th> <th>Date</th> <th>Edit</th> </tr> </thead> <!-- etc. -->
</table>
ध्यान दें कि मैंने पिछले उदाहरण से इनलाइन शैलियों के स्थान पर कक्षाएं जोड़ी हैं। वही विचार अभी भी लागू होता है: हम प्रत्येक कॉलम में चौड़ाई लागू कर रहे हैं।
चाल यह है कि पहले के बीच संबंध <col>
और खाली दूसरा <col>
. यदि हम पहले पर चौड़ाई लागू करते हैं <col>
(आईटी इस 200px
ऊपर दिए गए स्निपेट में), तो दूसरा कॉलम खा लिया जाएगा जब फिक्स्ड टेबल लेआउट उपलब्ध स्थान को कॉलम में वितरित करने के लिए विभाजित करता है। लेकिन पहले स्तंभ की चौड़ाई (200px
) का सम्मान किया जाता है और जगह पर बना रहता है।
देखा! हमारे पास एक नकली है min-width
एक टेबल सेल पर सेट करें। उपलब्ध स्थान में परिवर्तन के रूप में पहला सेल फ्लेक्स करता है और क्षैतिज स्क्रॉलिंग के लिए टेबल ओवरफ्लो होता है जैसा कि हमने आशा की थी।
(मैंने थोड़ा जोड़ा चिपचिपा स्थिति वहां पहले कॉलम में।)
अभिगम्यता
आइए यहां पहुंच के बारे में पूरी तरह से न भूलें। मैंने Windows पर NVDA और macOS पर VoiceOver के माध्यम से तालिका चलाई और पाया कि सभी पाँच स्तंभों की घोषणा की गई है, भले ही हम उनमें से केवल चार का उपयोग कर रहे हों। और जब पहला कॉलम फोकस में होता है, तो यह "कॉलम एक से दो" की घोषणा करता है। पूरी तरह से सुरुचिपूर्ण नहीं है लेकिन किसी को खोने का कारण भी नहीं बनने वाला है। मुझे लगता है कि हम एक फेंक सकते हैं aria-hidden
अप्रयुक्त कॉलम पर विशेषता, लेकिन यह भी जान लें कि ARIA खराब HTML का विकल्प नहीं है।
मैं मानता हूँ, यह थोड़ा सा लगता है, उम, हैकी। लेकिन यह काम करता है! मुझे बताएं कि क्या आपके पास टिप्पणियों में कोई अलग दृष्टिकोण है... या किसी भी भ्रम के बारे में जानते हैं जो यह "हैक" हमारे उपयोगकर्ताओं के लिए ला सकता है।
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोब्लॉकचैन। Web3 मेटावर्स इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- स्रोत: https://css-tricks.com/faking-min-width-on-a-table-column/
- 1
- 11
- 7
- 9
- 98
- a
- About
- ऊपर
- एक्सेसिबिलिटी
- जोड़ा
- स्वीकार करना
- कलन विधि
- सब
- राशि
- और
- की घोषणा
- की घोषणा
- लागू करें
- लागू
- दृष्टिकोण
- हवा
- स्वत:
- उपलब्ध
- BEST
- के बीच
- बिट
- लाना
- ब्राउज़र
- गुच्छा
- मामलों
- कारण
- परिवर्तन
- कक्षाएं
- स्तंभ
- स्तंभ
- कंटेनर
- शामिल हैं
- सामग्री
- नियंत्रण
- सका
- क्रिएटिव
- सीएसएस
- तिथि
- चूक
- परिभाषित करने
- विभिन्न
- डिस्प्ले
- बांटो
- नहीं करता है
- गतिशील
- से प्रत्येक
- आसान
- आसानी
- तत्व
- वातावरण
- आदि
- और भी
- उदाहरण
- से अधिक
- उल्लू बनाना
- खोज
- अंत
- प्रथम
- तय
- फोकस
- पाया
- से
- पूर्ण
- मिल
- देना
- जा
- अच्छा
- कठिन
- मदद करता है
- यहाँ उत्पन्न करें
- क्षैतिज
- कैसे
- एचटीएमएल
- HTTPS
- विचार
- in
- अन्य में
- व्यक्ति
- बजाय
- IT
- जानना
- ख़ाका
- थोड़ा
- देखिए
- MacOS
- बनाना
- केवल
- हो सकता है
- न्यूनतम
- अधिक
- अधिकांश
- आवश्यकता
- की जरूरत है
- संख्या
- एनवीडीए
- ONE
- अन्य
- अन्य
- विशेष रूप से
- जगह
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- गरीब
- पद
- प्रस्तुत
- पिछला
- परियोजना
- संपत्ति
- पहुंच
- संबंध
- बाकी है
- आदरणीय
- सम्मान
- बाकी
- परिणाम
- कारण
- वही
- स्क्रॉल
- स्क्रॉलिंग
- दूसरा
- सेट
- चाहिए
- दिखाना
- केवल
- के बाद से
- So
- समाधान
- कुछ
- कोई
- अंतरिक्ष
- प्रारंभ
- चुरा
- फिर भी
- सुपर
- तालिका
- टैग
- लेता है
- RSI
- वहाँ।
- चीज़ें
- यहाँ
- बार
- सेवा मेरे
- कुल
- पूरी तरह से
- <strong>उद्देश्य</strong>
- समझना
- अप्रयुक्त
- us
- उपयोग
- उपयोगकर्ता
- उपयोगकर्ताओं
- मूल्य
- मान
- दिखाई
- क्या
- कौन कौन से
- जब
- चौड़ा
- मर्जी
- खिड़कियां
- बिना
- शब्द
- काम
- कार्य
- होगा
- आप
- जेफिरनेट