मुझे पता है कि टेबल-आधारित लेआउट पर सीएसएस पोजिशनिंग पसंद करते हुए कई अच्छे तर्क हैं। मैं क्या सोच रहा हूं कि सीएसएस मॉडल टेबल की सभी क्षमताओं के संबंध में पूरा हो गया है (अपेक्षाकृत आधुनिक ब्राउज़र मान रहा है)। क्या ऐसे लेआउट हैं जो टेबल प्राप्त कर सकते हैं जो सीएसएस के साथ असंभव या अव्यवहारिक हैं?सीएसएस की स्थिति क्या कर सकती है?
उत्तर
यदि मैं कर सकता था तो मैं सीएसएस आधारित लेआउट पर स्विच करूंगा। Sematic तर्क सही हैं, लेकिन व्यावहारिक विचार हैं।टेबल्स देगा:
- बिल्कुल 'नाव रैप' जहां एक div अगली पंक्ति में गिर जाएगी रोकने क्योंकि के लिए यह
- आप एक ही ऊंचाई कॉलम देना
- गतिशील लेआउट जहां चौड़ाई की अनुमति देने के लिए पर्याप्त स्थान नहीं है वहाँ और ऊंचाइयों रन-टाइम
- colspans और rowspans प्रदान जब तक नहीं जाना जाता है
- कैसे टेबल :)
सीएसएस डिस्प्ले गुण (टेबल-सेल, इत्यादि) हैं जो इनमें से कुछ की नकल करते हैं, लेकिन मुझे विश्वास नहीं है कि समर्थन अभी तक उनका उपयोग करने के लिए काफी व्यापक है (जब तक कि आप अपने उपयोगकर्ता के ब्राउज़र चयन को नियंत्रित नहीं कर सकते)।
जिस साइट पर मैं काम करता हूं उसे लेआउट में प्रतिस्पर्धी गतिशील कॉलम चौड़ाई की आवश्यकता होती है। एकाधिक ग्राहक एक ही साइट टेम्पलेट का उपयोग करते हैं, और मुझे नहीं पता कि वे मेनू या पेज हेडर या सामग्री कक्षों में क्या डालेंगे। (और यह नहीं पता कि वे आकर्षक क्या पाएंगे, जो एक और मुद्दा है ...) साइट के मुख्य अनुभागों को बाहर रखने के लिए एक बाहरी बाहरी तालिका का उपयोग करने से मुझे लचीलापन की आवश्यकता होती है, बिना किसी चिंता के मुझे थोड़ा सा चौड़ा मेनू धक्का देगा मुख्य सामग्री बॉक्स अगली पंक्ति तक नीचे, या पृष्ठभूमि रंग आवश्यक ऊंचाई को भर नहीं पाएंगे।
एक परिपूर्ण (मेरे लिए) दुनिया में, हमारे पास टैबलेट डेटा के लिए <table>
एस होगा, और दूसरा, लेआउट के लिए टैग के लगभग समान सेट - इसे <layout>
(इसी पंक्ति और सेल टैग के साथ) पर कॉल करें। या, <table>
टैग पर 'मोड' विशेषता जोड़ें - मान 'डेटा' और 'लेआउट' होंगे ताकि स्क्रीन पाठकों और खोज इंजनों को पता चले कि क्या करना है। शायद एचटीएमएल 6 में ...
संपादित करें: मैं 'फ्लोट रैप' चीज़ के बारे में जोर से जोड़ता हूं - SO पर एक वर्तमान प्रश्न है जो बहुत अच्छी तरह से काम करता है here। यह सही नहीं है, और यह भी मुझे बहुत जटिल है, लेकिन यह कई मामलों में समस्या का समाधान करेगा।
टेबल्स का मतलब है और टैब्यूलर डेटा के लिए उपयोग किया जाना चाहिए, न कि संरचना के लिए। व्यक्तिगत रूप से मैं टेबल को एक आसान तरीके से उपयोग करने के लिए देखता हूं, और मैंने ऐसी स्थिति में कभी भाग नहीं लिया है जिसे सीएसएस के साथ हल नहीं किया जा सकता है।
टेबल्स लंबवत स्थिति और पूर्ण ऊंचाई कॉलम के लिए निश्चित रूप से आसान हैं, लेकिन फिर इसे सीएसएस से दूर किया जा सकता है।
मैं प्रोग्रामिंग में कोनों को काटने की वकालत करने वाला नहीं हूं लेकिन ऐसे मामले हैं जहां "हैक" कुछ "आदर्श" तरीका करने से बेहतर है। एचटीएमएल टेबल काम करते हैं। हर ब्राउज़र में। हमेशा। वे समझने और रखरखाव करने के लिए सरल हैं। जब divs को डालने की बात आती है तो सीएसएस इसके विपरीत होता है। – Nemi
@ नीमी - बू! तो इसके लिए मानक क्या हैं? –
+ -0 मैं सम्मान से असहमत हूं। वहां * ऐसी स्थितियां हैं जिन्हें टेबल या जावास्क्रिप्ट के बिना संभाला नहीं जा सकता है। सीएसएस मानक के डिजाइनरों ने लेआउट में उपयोग के लिए 'टेबल' के विकल्प प्रदान करने में एक खराब काम किया - क्यों, मुझे नहीं पता।"आसान तरीका" के रूप में, मैंने आपको यह बताया कि जब विकल्प पांच-पंक्ति '
+0, दूसरे और तीसरे के लिए -1, चौथे और पांचवें के लिए +1। : डी – ANeves
@ एसआर पीटी: मुझे खुशी है कि आपने मुझे पहले के लिए +0 के बदले +0 दिया है ... गंभीरता से, मैंने इस सामान के अधिकांश भाग के लिए आंशिक कामकाज देखा है, लेकिन वास्तव में कभी भी गतिशील चौड़ाई (मेरा तीसरा) नहीं। क्या आपके पास कुछ है? – Ray