कई बड़े वेब अनुप्रयोगों पर काम करने के बाद, और बिना किसी स्पष्ट संरचना वाले विशाल स्टाइल शीट देखकर, मुझे वास्तव में यह जानना अच्छा लगेगा कि लोगों को अपने सीएसएस को बड़े और जटिल वेब ऐप्स के लिए साफ रखने के तरीके मिल गए हैं या नहीं।विरासत वेब ऐप में सीएसएस स्पेगेटी को कैसे हटाएं?
आप विरासत, सीएसएस की गड़बड़ी को साफ करने, अच्छी तरह से कैस्केडिंग, डीआरवाई स्टाइलशीट से कैसे जाते हैं?
जिस ऐप पर मैं वर्तमान में काम कर रहा हूं उसके पास सीएसएस की 12000 लाइनें हैं। यह इस आकार में व्यवस्थित रूप से उगाया गया है क्योंकि सीएसएस की कोई मानक या समीक्षा नहीं थी, ऐप को डिजाइन से मेल खाने का एकमात्र नियम था। समस्याओं में से कुछ हम लगातार है:
विरोधी शैलियों: एक डेवलपर एक .header कहते हैं {font-weight: bold;} लेकिन .header पहले से ही अन्य मॉड्यूल में इस्तेमाल किया गया था और उन में बोल्ड नहीं होना चाहिए।
कैस्केडिंग समस्याएं: फू विजेट में एक हैडर है लेकिन इसमें हेडर वर्गों के साथ बार विजेट्स की एक सूची भी शामिल है।
- यदि हम .foo .header {...} और .bar .header {...} को परिभाषित करते हैं तो foo में स्पष्ट रूप से अधिलेखित कुछ भी बार में दिखाई नहीं देगा।
- अगर हम .foo> .header और .bar> .header को परिभाषित करते हैं लेकिन बाद में div में शीर्षलेख लपेटने के लिए foo को संशोधित करने की आवश्यकता होती है, तो हमारी शैली टूट जाती है।
विरासत की समस्याएं, हम विजेट फोंट को लगातार 11px/सामान्य में फिर से परिभाषित करते हैं क्योंकि कुछ शीर्ष कंटेनर 12px/18 px लाइन ऊंचाई का उपयोग करते हैं।
डेजो/डीजिट या jquery ui जैसे पुस्तकालयों का उपयोग करते हुए विजेट लाइब्रेरीज़ के खिलाफ लड़ना, जो कई शैलियों को कार्यात्मक रूप से जोड़ते हैं, इसका मतलब है कि हमारा कोड उन स्थानों के साथ बिखरा हुआ है जहां हमें लाइब्रेरी शैलियों को ओवरराइड करना है ताकि चीजों को ठीक से देख सकें ।
नामस्थान सभी नए विजेट: वहाँ ~ बस 2000 में निर्मित dijit शैलियों
हम एक बिंदु है जहां हम निम्नलिखित नियमों को लागू करने की सोच रहे हैं पर हैं में सुधार करने के लिए सीएसएस की लाइनें हैं कक्षा - यदि आपके पास विजेट है तो सभी उप-वर्गनाम .foo_ होंगे इसलिए हमें: .foo, .foo_header, .foo_content, .foo_footer मिल जाएगा। यह हमारे सीएसएस अनिवार्य रूप से FLAT बनाता है, लेकिन हम विरासत शैलियों या ऊपर वर्णित कैस्केडिंग समस्याओं में भाग दिए बिना हमारे कोड को आगे बढ़ने का कोई अन्य तरीका नहीं देखते हैं।
पुलिस जेनेरिक शैलियों - जेनेरिक कक्षाओं का एक छोटा सा मुट्ठी भर है जो केवल विशिष्ट परिस्थितियों में लागू किया जाता है। जैसे । संपादन योग्य - एक वाक्य के भाग पर लागू करें जो एक संपादक को आमंत्रित करना चाहिए - केवल पाठ नोड्स होना चाहिए।
लीवरेज सीएसएस कंपाइलर mixins अलग-अलग विगेट्स में समान शैलियों को बार-बार परिभाषित करने से बचने के लिए, मिश्रणों को परिभाषित करें और उपयोग करें। हालांकि हम चिंता करते हैं कि मिश्रण भी नियंत्रण से बाहर हो जाएंगे।
हम सीएसएस गड़बड़ी से और कैसे आगे बढ़ सकते हैं जो लगातार आगे बढ़ने योग्य कुछ के लिए प्रतिगमन प्रस्तुत करता है।
क्या वह एक पृष्ठ और दूसरे में विवादित नियमों का उल्लेख करता है? –
शैली गाइड विचार शानदार है। –
"एक इकाई परीक्षण के रूप में शैली गाइड का प्रयोग करें।" यह शायद सीएसएस से संबंधित सलाह का सबसे अच्छा टुकड़ा है जिसे मैंने कभी पढ़ा है। –