टेम्पलेट क्लब एक्स / वाई / जेड से एक नि: शुल्क / वाणिज्यिक जूमला टेम्पलेट का उपयोग करते समय, मेरी अपनी सीएसएस शैलियों को शामिल करने का सबसे अच्छा तरीका क्या है?
टेम्पलेट क्लब एक्स / वाई / जेड से एक नि: शुल्क / वाणिज्यिक जूमला टेम्पलेट का उपयोग करते समय, मेरी अपनी सीएसएस शैलियों को शामिल करने का सबसे अच्छा तरीका क्या है?
जवाबों:
यदि आप पूर्व-निर्मित जूमला टेम्पलेट का उपयोग कर रहे हैं तो हमेशा अपने सीएसएस शैलियों को मौजूदा टेम्पलेट स्टाइल से अलग रखना एक अच्छा विचार है।
CSS का अर्थ है "कैस्केडिंग स्टाइल शीट्स", "कैस्केडिंग" इस संदर्भ में अर्थ है कि क्योंकि एक से अधिक स्टाइलशीट नियम HTML के एक विशेष टुकड़े पर लागू हो सकते हैं, उपयोग किए जाने वाले नियम को सामान्य नियमों से अधिक विशिष्ट नियम के लिए नीचे कैस्केडिंग द्वारा चुना जाता है ( सबसे विशिष्ट नियम चुना जाता है), या किसी तत्व के लिए नियमों के आदेश के आधार पर (अंतिम नियम चुना जाता है)।
जब तक आपकी अनुकूलित CSS फ़ाइल डिफ़ॉल्ट टेम्पलेट CSS फाइलों के बाद लोड की जाती है , आप अपनी खुद की शैलियों को आवश्यकतानुसार विशिष्ट तत्वों को ओवरराइड करने के लिए जोड़ सकते हैं (नीचे कुछ अपवाद हैं, उस पर और अधिक)।
जूमला <head>
टैग में एक कस्टम स्टाइल शीट लोड करने के लिए, निम्न कोड index.php
को आपके टेम्प्लेट की फ़ाइल में जोड़ा जा सकता है ( YOURDOMAIN.COM/templates/yourtemplate/index.php
), अंतिम </head>
टैग से पहले यह सुनिश्चित करने के लिए कि आपकी फ़ाइल अंतिम लोड है।
JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/custom.css');
(CSS फ़ाइल का कोई भी नाम हो सकता है, और इसमें / css / सबफ़ोल्डर होना आवश्यक नहीं है, लेकिन यह इस तरह से क्लीनर है।)
सामान्य <link>
टैग जोड़ना संभव है , लेकिन यह उपर्युक्त विकल्प की तुलना में कम लचीला है:
<link rel="stylesheet" href="/joomla//templates/mytemplate/css/custom.css" type="text/css" />
!जरूरी
कुछ एक्सटेंशन आपकी CSS शैलियों को आपके बाद लोड कर सकते हैं (या सीधे index.php फ़ाइल में शैलियों को भी जोड़ सकते हैं), इस प्रकार आपके ओवरराइड को ओवरराइड कर सकते हैं। यह आमतौर पर !important
अपनी शैलियों में जोड़कर हल किया जा सकता है , जैसे।h1{color:red!important;}
अब मज़ेदार हिस्सा: कई टेम्प्लेट फ्रेमवर्क में यह संभावना है कि उपयोगकर्ता अपने टेम्प्लेट में बदलाव करना चाहते हैं, इस प्रकार अपने सीएसएस ओवरराइड को शामिल करने का एक आसान तरीका जोड़ सकते हैं। यहां कुछ तरीकों का इस्तेमाल किया गया है:
रॉकेटथीम गैन्ट्री 4
RocketTheme टेम्प्लेट गैन्ट्री फ्रेमवर्क द्वारा संचालित होते हैं, और एक अनुकूलित सीएसएस फ़ाइल स्वचालित रूप से लोड हो जाएगी यदि पाया गया है। CSS फ़ाइल को /templates/yourtemplate/css/
फ़ोल्डर में रखा जाना चाहिए , और नाम होना चाहिए YOURTEMPLATEFOLDER-custom.css
।
उदाहरण: यदि आप उनके मुफ्त Afterburner 2
टेम्पलेट का उपयोग कर रहे हैं , तो डिफ़ॉल्ट टेम्पलेट निर्देशिका है /templates/rt_afterburner2/
। rt_afterburner-custom.css
/ Css / सबफ़ोल्डर में (अंडरस्कोर और हाइफ़न के साथ कैरफ़ुल) नामक एक फ़ाइल जोड़ें , और इसे गैन्ट्री फ्रेमवर्क द्वारा स्वचालित रूप से लोड किया जाएगा।
आकृति 5
custom.css
अपने टेम्पलेट के / css / उपनिर्देशिका में एक खाली फ़ाइल के साथ 5 टेम्पलेट जहाज आकार दें । बस अपनी शैलियों को इस फ़ाइल में जोड़ें और वे आपके लेआउट में शामिल हो जाएंगे।
गेविक प्रो
Gavick प्रो टेम्पलेट overrides.css
/ css / subdirectory में एक खाली फ़ाइल के साथ जहाज । लेकिन ध्यान दें कि यह फ़ाइल डिफ़ॉल्ट रूप से लोड नहीं है, आपको Override CSS
टेम्पलेट सेटिंग्स में उन्नत सेटिंग्स टैब में सक्रिय करना होगा।
जूमला शाइन
अपने टेम्पलेट जैसे / css / सबफ़ोल्डर में एक कस्टम CSS फ़ाइल बनाएँ custom.css
और फ़ाइल का नाम यहाँ निर्दिष्ट करें Extensions -> Templates -> [template name] -> SEO & System -> Custom CSS/JS File(s)
।
T3 फ्रेमवर्क
T3 फ्रेमवर्क पर आधारित custom.css
टेम्प्लेट आपके टेम्प्लेट के / css / सबफ़ोल्डर में एक फ़ाइल शामिल कर सकते हैं / नहीं कर सकते हैं (बस इसे बनाएं अगर यह वहां नहीं है), लेकिन जब मौजूद होता है, तो फ़ाइल किसी अन्य CSS फ़ाइल के बाद लोड की जाएगी।
ताना ढांचा
ताना फ्रेमवर्क पर आधारित टेम्प्लेट custom.css
/ css / सबफ़ोल्डर में पाई गई फ़ाइल को स्वचालित रूप से लोड करता है । अतिरिक्त CSS फाइलों को जोड़कर लोड किया जा सकता है
$this->warp->stylesheets->add('css:yourcssfile.css');
फ़ाइल के लिए /layouts/template.config.php
।
JHtml::_('stylesheet', 'path/to/file')
से addStyleSheet
ही किसी अन्य उत्तर के बारे में तर्क के बजाय उपयोग करें :) इसके अलावा, अच्छा जवाब। निश्चित रूप से लोगों के लिए काम में आएगा
JHtml::_
इस्तेमाल किया जा सकता है $this->template
?
JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/style.css');
जूमला 3.5 के रूप में, आप नामक फ़ाइल बनाने में सक्षम हैं user.css
और इसे इसमें रखें:
टेम्पलेट्स / protostar / सीएसएस / user.css
नोट: फ़ाइल का नाम होना चाहिएuser.css
प्रोटोस्टार टेम्पलेट की जाँच करेगा यदि:
> 0
।यदि दोनों शर्तें पूरी होती हैं, तो यह आपके लिए यह फ़ाइल स्वचालित रूप से आयात करेगा।
गितुब पर पुल अनुरोध देखें
एक और जूमला टेम्पलेट ढांचा, जो अनुकूलन वर्कफ़्लो की सुविधा देता है।
हेलिक्स फ्रेमवर्क टेम्प्लेट 2 सुविधाजनक तरीकों के साथ अपने कस्टम शैलियों को जोड़ने का एक आसान तरीका प्रदान करते हैं।
बैकएंड में टेम्प्लेट कंट्रोल पैनल में, कस्टम सीएसएस फ़ील्ड है। यहां आप अपनी सीएसएस टाइप कर सकते हैं, जिसे आपके पेज के हेड सेक्शन में एक स्टाइल एलिमेंट के रूप में जोड़ा जाएगा और इस तरह, यह अन्य बाहरी सीएसएस फाइलों पर भी पूर्वता लेगा। बेशक यह विकल्प आदर्श नहीं है, यदि आप सीएसएस की लाइनों का एक गुच्छा लिखने की योजना बना रहे हैं, इसलिए एक दूसरी विधि है।
कई अन्य टेम्प्लेट फ्रेमवर्क के रूप में, हेलिक्स आपकी स्वयं की custom.css फ़ाइल बनाने की क्षमता भी प्रदान करता है। बस इसे बनाएं, और इसे टेम्पलेट के सीएसएस फ़ोल्डर के अंदर रखें। टेम्प्लेट इसे पार्स करेगा और इसे आपके पृष्ठों के मुख्य भाग में शामिल करेगा।
जोहानप ने अपने स्वयं के प्रश्न पर अपने उत्तर के साथ बहुत अच्छा काम किया है ... विशेषकर कई वाणिज्यिक टेम्पलेट्स के लिए सीएसएस ओवरराइड के बारे में।
मैं केवल अपने दो सेंट यहाँ जोड़ना चाहूँगा ...
जैसा कि जोहानव्ड ने रेखांकित किया, सीएसएस ओवरराइड बनाना अनुशंसित अभ्यास है। अपने कस्टम सीएसएस को एक सिंगल फाइल में रखना जो आपको पता हो कि अपडेट के बाद इसे डिलीट या ओवरराइड नहीं किया जाएगा।
यह सभी जूमला एक्सटेंशन के लिए याद रखना महत्वपूर्ण है। एक मॉड्यूल या घटक की कोर सीएसएस फ़ाइल को बदलने की कोशिश न करें। इसके बजाय, बेहतर होगा कि आप अपनी स्वयं की कस्टम टेम्पलेट बनाएँ। फ़ाइल को अंतिम रूप से लोड करें और वहाँ अपनी सभी कस्टम शैलियाँ बनाएँ।
ऐसे मामलों में जहां एक वाणिज्यिक टेम्पलेट एक सीएसएस ओवरराइड जोड़ने का एक तरीका प्रदान नहीं करता है, तो आप इस तरह से एक एक्सटेंशन का उपयोग कर सकते हैं: कस्टम सीएसएस जोड़ें , जो वास्तव में यह अनुमति देता है। अपनी कस्टम सीएसएस ओवरराइड फ़ाइल बनाने और इसे अंतिम लोड करने के लिए।
एक और विकल्प जो मैं अक्सर उन साइटों में करता हूं, जिन्हें मैं प्रबंधित करता हूं, टेम्पलेट को संशोधित करना और टेम्पलेट के समापन टैग से ठीक पहले, अपने custom.css फ़ाइल में अपना लिंक जोड़ना है । यह एक मामूली, याद रखने और संशोधन को बहाल करने में आसान है, कि जब कोई टेम्पलेट अपडेट आता है, तो मैं उससे निपटने के लिए ठीक हूं।
गैन्ट्री 5 लोकप्रिय टेम्प्लेट फ्रेमवर्क का नवीनतम संस्करण है और यह बहुत सारी नई सुविधाएँ और क्षमताएं प्रदान करता है।
CSS ओवरराइड के बारे में, बहुत अधिक लचीलापन और विकल्प हैं।
हाइड्रोजन थीम को लेना जो एक मानक गैन्ट्री 5 टेम्पलेट के रूप में जारी किया गया है, यह कस्टम नाम का एक फ़ोल्डर प्रदान करता है।
यह फ़ोल्डर उपयोगकर्ता को कस्टम फ़ाइल / ओवरराइड्स को गैन्ट्री फ्रेमवर्क / टेम्प्लेट के लिए प्रदान करने के लिए प्रदान किया जाता है (जो जूमला टेम्प्लेट ओवरराइड के साथ भ्रमित नहीं होने के लिए, जो टेम्पलेट / html फ़ोल्डर में रहता है)। आप वहाँ आप custom.css फ़ाइल रख सकते हैं। फिर गैन्ट्री टेम्प्लेट एडमिनिस्ट्रेशन पैनल के माध्यम से, आप टेम्प्लेट में अपने custom.css को जोड़ने के लिए अपने टेम्पलेट लेआउट को कस्टमाइज़ कर सकते हैं और कस्टम CSS / JS एटम पार्टिकल (एक नई गैन्ट्री 5 सुविधा) का उपयोग कर सकते हैं। गैन्ट्री 5 भी आसानी से अपने custom.css फ़ाइल को लिंक करने के लिए, तथाकथित स्ट्रीम लिंक (जैसे शॉर्टकट) प्रदान करता है ।
तो एटम कण के अंदर से आप इसका उपयोग करके लिंक करेंगे:
gantry-theme://custom/thing.css
gantry-theme://
शॉर्टकट, हमेशा वर्तमान गैन्ट्री टेम्पलेट फ़ोल्डर के पास भेजेगा।
इस दृष्टिकोण का उपयोग करना आपके gantry5 टेम्पलेट की विशिष्ट टेम्पलेट रूपरेखा के लिए custom.css जोड़ने का एक प्रभावी तरीका है।
एक दूसरा दृष्टिकोण, जो पूरे गैन्ट्री टेम्पलेट के लिए विश्व स्तर पर काम करता है, एक custom.scss फ़ाइल को अंदर जोड़कर है :
template_directory/custom/scss/custom.scss
ऐसा करने पर, gantry5 हमेशा इस scss फ़ाइल को लोड और संकलित करेगा, और आपके द्वारा लागू किया गया कोई भी css नियम टेम्पलेट के डिफ़ॉल्ट नियमों को ओवरराइड करेगा।
Scss फ़ाइल के अंदर आप SCSS या केवल css का उपयोग करके पूरी तरह से ठीक हैं। संकलक दोनों को संकलित करने में सक्षम है।