इनलाइन शैलियों के साथ सीएसएस छद्म कक्षाएं


131

क्या इनलाइन शैलियों का उपयोग करके छद्म कक्षाएं लगाना संभव है?


उदाहरण:

<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>

मुझे पता है कि उपरोक्त HTML काम नहीं करेगा लेकिन क्या ऐसा ही कुछ होगा?

पीएस मुझे पता है कि मुझे एक बाहरी स्टाइल शीट का उपयोग करना चाहिए, और मैं करता हूं। मैं सिर्फ उत्सुक था अगर यह इनलाइन शैलियों का उपयोग करके किया जा सकता है।


जवाबों:


113

नहीं, यह संभव नहीं है। सीएसएस का उपयोग करने वाले दस्तावेजों में, एक इनलाइन styleविशेषता में केवल संपत्ति की घोषणा हो सकती है; प्रत्येक नियम एक स्टाइलशीट में दिखाई देने वाले कथनों का एक ही सेट। से शैली कल्पना गुण :

शैली विशेषता का मान CSS घोषणा ब्लॉक (परिसीमन ब्रेसिज़ को छोड़कर) की सामग्री के वाक्यविन्यास से मेल खाना चाहिए , जिसका औपचारिक व्याकरण CSS कोर व्याकरण की शर्तों और सम्मेलनों में नीचे दिया गया है :

declaration-list
  : S* declaration? [ ';' S* declaration? ]*
  ;

न तो चयनकर्ताओं (छद्म तत्वों सहित), न ही नियम, और न ही किसी अन्य सीएसएस निर्माण की अनुमति है।

इनलाइन शैलियों के बारे में सोचें क्योंकि कुछ अनाम सुपर-विशिष्ट आईडी चयनकर्ता पर लागू की गई शैलियाँ: वे शैलियाँ केवल उसी styleविशेषता पर लागू होती हैं, जो विशेषता के साथ होती है । (वे किसी स्टाइलशीट में एक आईडी चयनकर्ता पर भी वरीयता लेते हैं, अगर उस तत्व में वह आईडी है।) तकनीकी रूप से यह उस तरह से काम नहीं करता है; यह सिर्फ आपको यह समझने में मदद करने के लिए है कि विशेषता छद्म वर्ग या छद्म तत्व शैलियों का समर्थन क्यों नहीं करती है (यह अधिक है कि छद्म वर्ग और छद्म तत्व दस्तावेज पेड़ के सार को कैसे प्रदान करते हैं जिन्हें व्यक्त नहीं किया जा सकता है दस्तावेज़ भाषा)।

ध्यान दें कि इनलाइन शैलियाँ नियम सेटों में चयनकर्ताओं के रूप में समान कैस्केड में भाग लेती हैं, और कैस्केड ( !importantभले ही) में सबसे अधिक पूर्वता लेती हैं । इसलिए वे छद्म श्रेणी के राज्यों से भी पूर्वता लेते हैं। छद्म वर्गों या किसी अन्य चयनकर्ताओं को इनलाइन शैलियों की अनुमति देने से संभवतः एक नया झरना स्तर शुरू होगा, और इसके साथ जटिलताओं का एक नया सेट होगा।

यह भी ध्यान दें कि स्टाइल अटैचमेंट्स युक्ति के बहुत पुराने संशोधनों ने मूल रूप से यह अनुमति देने का प्रस्ताव किया था , हालांकि, ऊपर दिए गए कारण के लिए, संभवतः इसे समाप्त कर दिया गया था, या क्योंकि इसे लागू करना एक व्यवहार्य विकल्प नहीं था।


45

सीएसएस नहीं, लेकिन इनलाइन:

<a href="#" 
   onmouseover = "this.style.textDecoration = 'none'"
   onmouseout  = "this.style.textDecoration = 'underline'">Hello</a>

उदाहरण देखें →


2
हाँ, मुझे लगता है कि एक और विकल्प है। यह सीएसएस नहीं है, लेकिन इसके लिए काम करता है: माउसओवर और माउसआउट का उपयोग करते हुए,: ऑनफोकस और ऑनब्लूर का उपयोग करके ध्यान केंद्रित करें, और: ऑनक्लिक का उपयोग करके सक्रिय।
Web_Designer

1
क्या इसे जावास्क्रिप्ट के रूप में गिना जाएगा? मेरे पास एक परियोजना है जिसमें इनलाइन सीएसएस और कोई जावास्क्रिप्ट की आवश्यकता है।
आकिल फर्नांडिस

7
हाँ यह जावास्क्रिप्ट है।
जोएल मर्फी

1
यह एक अच्छा विकल्प है। बाहरी CSS शीट का उपयोग करना OO (ऑब्जेक्ट ओरिएंटेड) सिद्धांत के विरुद्ध है। एक तत्व की शैली को तत्व के साथ एक साथ रखा जाना चाहिए।
इवान हू

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

26

इनलाइन की आवश्यकता के बजाय आप आंतरिक सीएसएस का उपयोग कर सकते हैं

<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>

आप ऐसा कर सकते थे:

<a href="http://www.google.com" id="gLink">Google</a>
<style>
  #gLink:hover {
     text-decoration: none;
  }
</style>

1
क्या यह मुख्य तत्व के बाहर आंतरिक सीएसएस का उपयोग करने के लिए स्वीकार्य है?
थाइना

4
@ यह अब एचटीएमएल 5 में है: html5doctor.com/the-scoped-attribute
Ason

2
@Thaina अजीब बात है, एक और सवाल है, जहां मैं ऐसा करने का फैसला किया और पता चला में भाग scopedविशेषता चश्मा .... से हटा दिया गया developer.mozilla.org/en/docs/Web/HTML/Element/style
Ason

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