मैं अपने टेम्पलेट में CSS शैलियों को कैसे ओवरराइड कर सकता हूं?


21

टेम्पलेट क्लब एक्स / वाई / जेड से एक नि: शुल्क / वाणिज्यिक जूमला टेम्पलेट का उपयोग करते समय, मेरी अपनी सीएसएस शैलियों को शामिल करने का सबसे अच्छा तरीका क्या है?


1
एक custom.css स्टाइलशीट जोड़ें। यदि आपका टेम्प्लेट स्वचालित रूप से इसे नहीं उठाता है, तो आप इसे अपने सिर में जोड़ सकते हैं। आमतौर पर पथ यह है: टेम्प्लेट / टेम्प्लेटेनम / tpls / ब्लॉक्स / हेड। लिंक <= rel = "स्टाइलशीट" href = "/ टेम्प्लेट / टेम्प्लेटनेम / css / custom.css "type =" text / css "/>
Tony M

जवाबों:


22

CSS ओवरराइड का उपयोग क्यों करते हैं?

यदि आप पूर्व-निर्मित जूमला टेम्पलेट का उपयोग कर रहे हैं तो हमेशा अपने सीएसएस शैलियों को मौजूदा टेम्पलेट स्टाइल से अलग रखना एक अच्छा विचार है।

  • इसे बनाए रखना आसान है
  • यदि आप टेम्पलेट को अपग्रेड करते हैं तो आपके परिवर्तन नहीं होंगे
  • आप किसी अन्य टेम्पलेट या किसी अन्य साइट पर संशोधनों को आसानी से कॉपी / स्थानांतरित कर सकते हैं।

CSS कैसे काम करता है?

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


2
सामान्य उपयोग के लिए, मैं सुझाव देना चाहूंगा कि पहले JHtml::_('stylesheet', 'path/to/file')से addStyleSheetही किसी अन्य उत्तर के बारे में तर्क के बजाय उपयोग करें :) इसके अलावा, अच्छा जवाब। निश्चित रूप से लोगों के लिए काम में आएगा
Lodder

धन्यवाद, @Lodder मुझे उम्मीद है कि यह जानकारी लोगों के लिए उपयोगी हो सकती है। आपके सुझाव के बारे में, मैंने बहस पढ़ी। कैसे JHtml::_इस्तेमाल किया जा सकता है $this->template?
johanpw

2
JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/style.css');
लोडर

3
दरअसल, नए रॉकेट थीम LESS का उपयोग करते हैं। आपको बस इतना करना होगा कि LESS फोल्डर में एक फाइल बनायें, जिसे टेम्पलेट-कस्टम कहा जाता है। उसमें अपना कोड डालें। फिर आप उन ट्रिक्स का आनंद ले सकते हैं जो LESS लाता है। Warp 7 आपको स्टाइल फ़ोल्डर में अपनी खुद की "शैली" बनाने की अनुमति देता है और आप वास्तव में THAT फ़ोल्डर (अपने स्वयं के सीएसएस फ़ोल्डर के अंदर) में एक custom.css फ़ाइल चिपका सकते हैं। इस तरह से प्रत्येक शैली का अपना कस्टम सीएसएस हो सकता है। यह इसे टेम्प्लेट अपग्रेड करने के लिए भी खड़ा करता है। डिफ़ॉल्ट custom.css फ़ाइल का उपयोग करने का मतलब है कि यह हर बार जब आप थीम को अपग्रेड करते हैं, तब यह ओवरराइट हो जाता है।
ब्रायन पीट

1
शानदार जवाब और बहुत उपयोगी! एक अन्य विकल्प आप टेम्पलेट्स / चौखटे कि कस्टम सीएसएस फ़ाइलों के लिए प्रावधान शामिल नहीं है के लिए जोड़ने के लिए पसंद कर सकते हैं इस तरह के CSSConfig के रूप में एक तीसरी पार्टी के विस्तार का उपयोग है extensions.joomla.org/extensions/style-a-design/templating/... जो इस सटीक उद्देश्य के लिए डिज़ाइन किया गया है।
नील रॉबर्टसन

7

जूमला 3.5+ (प्रोटॉस्टर टेम्पलेट)

जूमला 3.5 के रूप में, आप नामक फ़ाइल बनाने में सक्षम हैं user.cssऔर इसे इसमें रखें:

टेम्पलेट्स / protostar / सीएसएस / user.css

नोट: फ़ाइल का नाम होना चाहिएuser.css


प्रोटोस्टार टेम्पलेट की जाँच करेगा यदि:

  • फ़ाइल मौजूद है
  • फ़ाइल का आकार है > 0

यदि दोनों शर्तें पूरी होती हैं, तो यह आपके लिए यह फ़ाइल स्वचालित रूप से आयात करेगा।

गितुब पर पुल अनुरोध देखें


5

हेलिक्स फ्रेमवर्क ( JoomShaper )

एक और जूमला टेम्पलेट ढांचा, जो अनुकूलन वर्कफ़्लो की सुविधा देता है।

हेलिक्स फ्रेमवर्क टेम्प्लेट 2 सुविधाजनक तरीकों के साथ अपने कस्टम शैलियों को जोड़ने का एक आसान तरीका प्रदान करते हैं।

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

  2. कई अन्य टेम्प्लेट फ्रेमवर्क के रूप में, हेलिक्स आपकी स्वयं की custom.css फ़ाइल बनाने की क्षमता भी प्रदान करता है। बस इसे बनाएं, और इसे टेम्पलेट के सीएसएस फ़ोल्डर के अंदर रखें। टेम्प्लेट इसे पार्स करेगा और इसे आपके पृष्ठों के मुख्य भाग में शामिल करेगा।


3

जोहानप ने अपने स्वयं के प्रश्न पर अपने उत्तर के साथ बहुत अच्छा काम किया है ... विशेषकर कई वाणिज्यिक टेम्पलेट्स के लिए सीएसएस ओवरराइड के बारे में।

मैं केवल अपने दो सेंट यहाँ जोड़ना चाहूँगा ...

जैसा कि जोहानव्ड ने रेखांकित किया, सीएसएस ओवरराइड बनाना अनुशंसित अभ्यास है। अपने कस्टम सीएसएस को एक सिंगल फाइल में रखना जो आपको पता हो कि अपडेट के बाद इसे डिलीट या ओवरराइड नहीं किया जाएगा।

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

ऐसे मामलों में जहां एक वाणिज्यिक टेम्पलेट एक सीएसएस ओवरराइड जोड़ने का एक तरीका प्रदान नहीं करता है, तो आप इस तरह से एक एक्सटेंशन का उपयोग कर सकते हैं: कस्टम सीएसएस जोड़ें , जो वास्तव में यह अनुमति देता है। अपनी कस्टम सीएसएस ओवरराइड फ़ाइल बनाने और इसे अंतिम लोड करने के लिए।

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


3

गैन्ट्री 5 (रॉकेटथीम)

गैन्ट्री 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 का उपयोग करके पूरी तरह से ठीक हैं। संकलक दोनों को संकलित करने में सक्षम है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.