2010-12-07 15 views
6

क्या बड़ी वेबसाइटों के लिए अपना सीएसएस सेट अप, निर्माण, स्टोर करने के लिए कोई सामान्य पैटर्न है?एक बड़ी वेबसाइट स्टाइलिंग के लिए सामान्य पैटर्न

मैंने कई अलग-अलग चीजों की कोशिश की है जो मैंने स्वयं के साथ आये हैं।

मैं 1 फ़ाइल में सभी लेआउट (स्थिति, आकार, आदि) डाल जबकि एक अन्य में सभी सजावट (रंग, पृष्ठभूमि, आदि) तो मैं बाहर शैलियों आसानी से लेआउट प्रभावशाली बिना स्वैप कर सकते हैं की कोशिश की है। यह बहुत कठिन हो जाता है जब प्रत्येक तत्व एकाधिक फ़ाइलों में स्टाइल किया जाता है।

मैं एक मुख्य सीएसएस फ़ाइल के साथ आ की कोशिश की है, तो किसी भी पृष्ठ विभिन्न नियम हैं कि, उन नियमों के लिए अपने स्वयं के सीएसएस फ़ाइल हो जाता है। यह अंततः एक ही "अद्वितीय" नियमों के साथ अन्य पृष्ठों की ओर जाता है, और हमेशा डुप्लिकेट सीएसएस के साथ समाप्त होता है (प्रत्येक पृष्ठ की अपनी सीएसएस फ़ाइल परिभाषित होती है जो एक साझा शैली होनी चाहिए) जिससे इसे बनाए रखना मुश्किल हो जाता है।

हर सीएसएस किताब, ट्यूटोरियल, या जो कुछ भी मैंने कभी पढ़ा है बताता है कि सीएसएस करता है और कैसे एक ही पृष्ठ या छोटे साइट के संदर्भ में इसका इस्तेमाल करने की। मुझे इसकी अच्छी समझ है, लेकिन मुझे कभी भी बड़ी संख्या में असुविधाओं के साथ एक बड़ी वेबसाइट बनाने की योजना बनाने के बारे में कोई चर्चा नहीं दिखाई देती है।

क्या कोई पैटर्न/सामान्य अभ्यास है जिसका मैं अनुसरण कर सकता हूं?

मैं कंटेनरों जैसे के लिए एक सीएसएस फ़ाइल बनाने:

उत्तर

0

यह क्या मैं आमतौर पर करते हैं और व्यक्तिगत शैलियों के लिए एक और फ़ाइल (div, img, एक लिंक आदि)।

कंटेनर के साथ मेरा मतलब है, आपकी वेबसाइट की रूपरेखा, आपकी वेबसाइट सामग्री जैसे पाठ इसे उत्तेजित करता है।

शैलियों के साथ मेरा मतलब है, या सूची जारी है।

मुझे आशा है कि यह आप, बीमार संपादित इस पर एक बहुत अच्छा मार्गदर्शन के साथ अपनी पोस्ट में मदद की। (मैं इसे खोजने के जैसे ही)।

पीएस। किताब मुफ्त है।

1

उदाहरण के लिए फ़्लिकर, फेसबुक, ट्विटर या कुछ जैसी बड़ी साइटों पर नज़र डालें। सबसे अच्छी बात (गति के मामले में), सब कुछ स्टोर करने के लिए एक सीएसएस फ़ाइल का उपयोग करना है।
अलग साइटों के लिए अलग नियम के संदर्भ में, वहाँ भी "मॉड्यूलर" डिजाइन करने के लिए एक संभावना है -

.redFontColor { 
    color: #F00; 
} 

.smallFont { 
    font-family: "Courier New", "Times New Roman", serif; 
    font-size: .7em; 
} 

.alignedLeft { 
    text-align: left; 
} 

की तरह और वह

<div class="alignedLeft"> 
    This will be <span class="smallFont redFont">small and red</span> - but this text will just be <span class="redFont">red</span> 
</div> 

तरह HTML में इसका इस्तेमाल काफी के एक बहुत हैं साइटें जो इस तरह जाती हैं ;-)।

2

आपको हमेशा ध्यान में रखना चाहिए। एक बड़ी फ़ाइल होने के बाद इष्टतम है क्योंकि इसे केवल एक बार लोड किया जाता है और बाद में कैश किया जा सकता है, जिससे अन्य बाहरी संसाधनों को लोड किया जा सकता है ताकि पेज लोड समय के ऊपरी हिस्से को कम किया जा सके। जाहिर है, यह एक बड़ी फाइल के लिए बनाता है लेकिन टिप्पणियों और इंडेंटिंग के माध्यम से आप चीजों को एक उचित तरीके से समूहबद्ध करने में सक्षम होना चाहिए।

वैकल्पिक रूप से आप रखने के लिए उन्हें अपने देव वातावरण में अलग और उन सब तैनाती से पहले एक फाइल में गठबंधन करने के लिए एक निर्माण तंत्र पर विचार कर सकते हैं। यह वास्तव में दोनों दुनिया के सर्वश्रेष्ठ प्रदान करता है।

केवल वास्तविक आवश्यकता मैं अलग सीएसएस फ़ाइलों के लिए देखा है थीम, पहुंच और मध्यम (प्रिंट, पेज आदि ...) के लिए विभिन्न शैलियों है।

0

हम मैं कुछ ऐसा जोड़ा जिसे हमने "सीएसएस संकलन" नाम दिया, जो कि विधिवत के उत्तर देने जैसा कुछ है। हमारा संकलन (PHP बैकएंड द्वारा किया गया) प्रत्येक मॉड्यूल के लिए एक संकलित सीएसएस फ़ाइल उत्पन्न करता है और इस प्रकार एक एकल सीएसएस फ़ाइल रनटाइम पर लोड होती है। यह हमें कई सीएसएस फाइलों को परिभाषित करने की स्वतंत्रता देता है जैसा कि हम प्रदर्शन के बारे में चिंता किए बिना चाहते हैं। इसके लिए हमने एक सरणी $moduleCssrelation परिभाषित किया जिसमें मॉड्यूल-सीएसएस फाइलें हमारे प्रोजेक्ट की कॉन्फ़िगरेशन फ़ाइल (मॉड्यूल उदा। लॉगिन, होम इत्यादि और प्रत्येक मॉड्यूल के लिए सीएसएस फाइलों को लोड करने के लिए) में शामिल हैं। अंत में उस पर अधिक जानकारी का वर्णन करना क्योंकि यह शैली-वास्तुकला का मूल है।

यह बुनियादी सीएसएस योजना है कि हम प्रयोग किया जाता है: -

  1. विस्तार से अध्ययन सभी मॉड्यूल शैली पैटर्न/पुन: प्रयोज्य घटकों का उल्लेख किया और देखा कि
    • हैडर अनुभाग, पाद लेख अनुभाग और एक बाएं मेनू प्रत्येक मॉड्यूल
    • में कई मॉड्यूल हैं जिनमें केंद्र में कुछ सूचियों (सामान्य हेडर, पाद लेख और बाएं मेनू छोड़कर) के टैब्यूलर डिस्प्ले सेक्शन हैं और ऐसे कई मॉड्यूल हैं जो कुछ विवरण विवरण जैसे उपयोगकर्ता विवरण पृष्ठ प्रदर्शित करते हैं, कक्षा विवरण पृष्ठ।
  2. हमारे पास डिजाइनरों की एक टीम द्वारा हमें दी गई एक ही फाइल में सभी शैलियों थीं। फिर हमने पिछले चरण में अध्ययन के अनुसार स्टाइल पैटर्न के अनुसार एकल सीएसएस फ़ाइल को कई टुकड़ों में विभाजित कर दिया।

  3. common.css शीर्ष, पादुका युक्त, बाएँ मेनू शैलियों

  4. listings.css केवल सूची पृष्ठों में दिखाई देने घटकों के लिए सभी शैली परिभाषाएँ युक्त - तो, ​​हम कुछ फ़ाइलों की तरह बनाया।
  5. details.css जैसा कि आपने कहा है कि .detailsRedHeading कक्षा है, जो केवल विवरण पृष्ठों के मामले में आवश्यक है, इसे यहां परिभाषित करें।

  6. किसी भी अतिरिक्त शैलियों - कई मॉड्यूल लगता है अपनी शैली के साथ एक पॉपअप की जरूरत है, तो बजाय common.css में उन शैलियों या किसी अन्य फ़ाइल को परिभाषित करने का एक popups.css अंदर उन शैलियों डाल दिया। हमें जितनी चाहें उतनी सीएसएस फाइलों को परिभाषित करने की स्वतंत्रता को याद रखें।

बाद में विषय की आसानी के लिए बदल जाता है
मैं "की मैं जबकि सभी सजावट (रंग, पृष्ठभूमि 1 फ़ाइल में सभी लेआउट (स्थिति, आकार, आदि) डाल की कोशिश की है अपने विचार कभी नहीं लागू कर दिए हैं , आदि) एक और में ", लेकिन अगर यह आपकी मदद करता है, तो आप इसे इस वास्तुकला में जोड़ सकते हैं। common.csscommon_layout.css, common_design.css और इसी तरह दूसरों के लिए तोड़ें।

इसके अलावा, सुनिश्चित करें कि आप पहली बार अधिकतम संभव शैली का पुन: उपयोग करते हैं। इस तरह शैली घोषणाओं से बचें: -

.listingsBody 
{ 
    font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif; 
    font-size: 12px; 
    .. 
    some listing page styles 
    .. 
} 

.detailsBody 
{ 
    font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif; 
    font-size: 12px; 
    .. 
    some details page styles 
    .. 
} 

इसके बजाय यह है: -

.siteMediumFont 
{ 
    font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif; 
    font-size: 12px; 
} 

.detailsBody 
{ 
    .. 
    some details page styles 
    .. 
} 

.listingsBody 
{ 
    .. 
    some listing page styles 
    .. 
} 

मैंने देखा है कई डिजाइनरों ऐसा करने कि। अधिक जटिल मामलों में यह आदत बाद में चीजों को वास्तव में मुश्किल बना सकती है।

संकलन पर विवरण: -

के बाद हम सीएसएस परिवर्तनों को लागू करने के बाद, हम संकलन कोड है जो निम्न करता चलाएँ: -

$moduleCssrelation = array("class_details"=> array("details","popups")); 

सरणी $moduleCssrelation Traverse और से एक संकलित फ़ाइल बनाने प्रत्येक मॉड्यूल के लिए सीएसएस फ़ाइल नाम की सामग्री। उदा। यदि class_details मॉड्यूल को details.css, popups.css फ़ाइलों की आवश्यकता है, तो यह फ़ाइल common-details-popups.css बनाता है जो class_details के साथ-साथ इन दो सीएसएस फ़ाइलों की आवश्यकता वाले किसी अन्य मॉड्यूल के लिए भी लोड किया जाएगा।

संबंधित मुद्दे