जब किसी कार्य को जावास्क्रिप्ट या CSS द्वारा पूरा किया जा सकता है, तो क्या CSS का उपयोग करना बेहतर है? [बन्द है]


11

मैं हमेशा सीएसएस का उपयोग करके जावास्क्रिप्ट को जितना संभव हो सके वीटो करता हूं।

यानी मैं जावास्क्रिप्ट के बजाय CSS का उपयोग करके टैब और रोलओवर बटन बनाता हूं।

मैंने कुछ समाधान देखे हैं - विशेष रूप से डब्ल्यूटी वेब-फ्रेमवर्क- एडवोकेट जावास्क्रिप्ट; अगर ब्राउज़र सक्षम / js- अक्षम नहीं है, लेकिन सीएसएस को इनायत से डाउनग्रेड करें।

मुझे पता है कि सीएसएस और जावास्क्रिप्ट के अलग-अलग उद्देश्य हैं, हालांकि ओवरलैप है; जो इस प्रश्न का शोक है।

क्या मुझे जावास्क्रिप्ट पर सीएसएस का उपयोग जारी रखना चाहिए?

जवाबों:


10

हाँ।

सीएसएस उद्देश्य लेआउट, देखो और महसूस और एनिमेशन है

जावास्क्रिप्ट उद्देश्य बातचीत है।

यदि आप लेआउट कर रहे हैं, तो CSS का उपयोग करें, यदि आप लुक सेट कर रहे हैं और सीएसएस का उपयोग करें, यदि आपका एनीमेशन एनीमेशन CSS3 का उपयोग करता है

यदि आप ईवेंट हैंडलर संलग्न करते हैं या उपयोगकर्ता इनपुट पर प्रतिक्रिया करते हैं तो जावास्क्रिप्ट का उपयोग करें।

ध्यान दें कि ब्राउज़र समर्थन के लिए लोग सीएसएस के बजाय जावास्क्रिप्ट का उपयोग करते हैं। जावास्क्रिप्ट का उपयोग करके सीएसएस सुविधाओं का अनुकरण करने जैसे अन्य समाधान हैं।


1
मुझे CSS3 में लागू बहुत सारी सुविधाएँ पसंद हैं, हालाँकि ब्राउज़र समर्थन धीमा है, और मुझे अभी भी विरासत ब्राउज़रों की सुविधा की आवश्यकता है। अन्यथा मैं इनपुट सत्यापन के लिए एचटीएमएल 5 का उपयोग करता हूं: पी
एटी

जावास्क्रिप्ट का उपयोग सिर्फ बातचीत के लिए नहीं किया जाता है। इसका उपयोग डेटा को वेब सर्वर, और कई अन्य चीजों पर वापस भेजने के लिए भी किया जा सकता है।
एरियनवान

@eriawan इंटरैक्शन एक अस्पष्ट शब्द हो सकता है। लेकिन जावास्क्रिप्ट मुख्य रूप से x है जब उपयोगकर्ता से बातचीत करते हैं, जहां x
मध्यस्थ है

12

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

मेरी आंत का कहना है कि सीएसएस का अधिक से अधिक उपयोग करें, लेकिन इसे एक कठिन और तेज नियम में न बनाएं।

a:hover {
  background-color: green;
}

बेहतर तो शब्दार्थ है

$('a').onmouseover(function() {
  $(this).css('background-color','green');
})

परंतु

$('a').onmouseover(function() {
  if (somethingelsehappened) {
    $(this).css('background-color','green');
  }
})

सीएसएस में मुश्किल (हालांकि असंभव नहीं) होगा। आप इसे इस तरह से कर सकते हैं।

$('a').onmouseover(function() {
  if (somethingelsehappened) {
    $(this).addClass('Green');
  }
})

a.green {
  background-color: green;
}

यह वास्तव में एक बहुत ही अजीब तरीका होगा जो सीधे जावास्क्रिप्ट में किया जा सकता है, लेकिन मैं इसके बारे में कुछ मिनटों के लिए सोच रहा हूं, और यहां तक ​​कि सही समाधान बहुत अच्छी तरह से एक सीएसएस हो सकता है, उदाहरण के लिए यदि आप होवर करते समय बहुत सारी विशेषताएँ सेट कर रहे थे।

** कृपया ध्यान दें कि इस कोड में से कोई भी काम करने की उम्मीद नहीं है, ये केवल प्रदर्शन उद्देश्यों के लिए हैं। **


3
अच्छी तरह से कहा गया है, लेकिन आपके दूसरे उदाहरण के लिए मैं सीएसएस वर्ग (एक बेहतर नाम) का उपयोग करने में संकोच नहीं करूंगा। प्रस्तुति और व्यवहार के मामले में दोनों के बीच एक निश्चित ओवरलैप है, लेकिन इन उदाहरणों में यह बहुत सीधा है - व्यवहार माउसओवर पर उपस्थिति बदल रहा है, उपस्थिति सीएसएस में वर्णित है।
सेवंसेकैट

3

विचार करें कि क्या आप Yahoo डेवलपर नेटवर्क से निम्नलिखित काम करेंगे :

"संख्या को कम करने के बाद, हमने जावास्क्रिप्ट-अक्षम अनुरोधों को वास्तविक विज़िटर ट्रैफ़िक के लगभग 1% पर मंडराते हुए पाया, जिसकी उच्चतम दर संयुक्त राज्य अमेरिका में लगभग 2 प्रतिशत थी और सबसे कम ब्राजील में लगभग 0.25 प्रतिशत थी। सभी। अन्य देशों ने परीक्षण किया कि संख्या 1.3 प्रतिशत के बहुत करीब है। "

प्रतिशत के साथ इतना कम (अधिकतम के रूप में) यह शायद ही इसके लायक लगता है (जब तक कि आपकी वेबसाइट उपयोगकर्ता मुख्य रूप से उस 2% से नहीं आते हैं) उस मामले के बारे में चिंता करने के लिए जहां उपयोगकर्ताओं ने अपनी जावास्क्रिप्ट बंद कर दी है। औसत उपयोगकर्ता को पता नहीं है कि जावास्क्रिप्ट को कैसे बंद किया जाए और संभवतः इसकी परवाह नहीं की जाती है। यदि आप एक टेक वेबसाइट विकसित कर रहे हैं, तो आप इस संभावना पर विचार करना चाह सकते हैं कि उनके पास जावास्क्रिप्ट अक्षम होगा, हालाँकि यदि उनकी संभावना है कि वे वेबसाइटों के लिए सही तरीके से काम नहीं कर रहे हैं, क्योंकि कई वेबसाइटें जावास्क्रिप्ट का भारी उपयोग करती हैं।

कहा जा रहा है कि मुझे ऐसे कई मामले मिले हैं, जहाँ जावास्क्रिप्ट विकास करता है जो कि मैं बहुत आसान और अन्य मामलों को पूरा करने की कोशिश कर रहा हूँ जहाँ सीएसएस समान है।

अंत में प्रत्येक "भाषा" का वेब विकास में उचित स्थान है और बुद्धिमानी से उपयोग करने से विकास और उपयोगकर्ता अनुभव दोनों को बढ़ाया जा सकता है। जानें कि वे उपयोग क्या हैं (मैं अनुभव सीखने की सलाह देता हूं) और बुद्धिमानी से लागू होते हैं। मेरे अनुभव में, "एक सीएसएस समाधान मौजूद होने पर कभी जेएस का उपयोग न करें" जैसे पत्थर के नियमों में सेट किया गया है (व्यावहारिक रूप से) शायद ही कभी व्यावहारिक दुनिया में सबसे अच्छा होता है।


इसके लिए धन्यवाद, बहुत जानकारी। क्या आप अपने चौथे पैराग्राफ पर विस्तार कर सकते हैं?
एटी

3
CSS एक "स्टाइलिंग" टूल है और जावास्क्रिप्ट "इंटरैक्टिविटी" टूल है। मैंने पाया है कि उदाहरण के लिए ड्रॉप डाउन मेनू बनाने के लिए बहुत आसान है सीएसएस के साथ स्टाइल लेकिन जावास्क्रिप्ट के साथ एनिमेटेड। क्या आप इसे सीएसएस के साथ कर सकते हैं? हाँ। क्या आप एक स्क्रू ड्राइवर के साथ एक कील हथौड़ा कर सकते हैं? हाँ। रिवर्स उदाहरण के लिए, यदि आपको केवल एक लिंक पर रंग बदलने की आवश्यकता होती है, जब माउस लिंक पर होता है, तो इसके लिए जावास्क्रिप्ट का उपयोग करने के लिए शायद थोड़ा ओवरकिल होता है, जब उस उद्देश्य के लिए विशेष रूप से डिज़ाइन किया गया सीएसएस तत्व होता है। क्या आप इसे जावास्क्रिप्ट के साथ कर सकते हैं? हां ... क्या आप एक मकड़ी को स्लेजहेमर से मार सकते हैं? जी हाँ ...
केनेथ

2

जावास्क्रिप्ट एक वास्तविक कंप्यूटर भाषा है, जिसका अर्थ है कि इसमें कार्यक्रम निष्पादन की स्थिति और नियंत्रण है। जैसे, यह कितनी जटिल हो सकती है इसकी कोई ऊपरी सीमा नहीं है, और इसमें आप जो कुछ भी लिखते हैं वह जटिलता की एक न्यूनतम सीमा है। CSS एक वर्णनात्मक कोड है; इसकी जटिलता उस जटिलता के स्तर तक सीमित है जो एक नुस्खा हो सकती है। इसलिए, अगर सीएसएस और जावास्क्रिप्ट दोनों में कुछ किया जा सकता है, तो मैं बहुत सीएसएस का उपयोग करूंगा, क्योंकि यह कम जटिल है।


1
"अगर कुछ जावास्क्रिप्ट के बजाय सीएसएस का उपयोग करके किया जा सकता है, तो मैं बहुत सीएसएस का उपयोग करूंगा, क्योंकि यह कम जटिल होने के लिए बाध्य है" ... आप कैसे आंकड़ा करते हैं? यह वास्तव में इस बात पर निर्भर करता है कि आप जेएस बनाम सीएसएस में अधिक जटिल होंगे या नहीं ...
केनेथ

जैसा कि मैंने कहा, निष्पादन के नियंत्रण वाला एक राजकीय कार्यक्रम किसी भी नुस्खा की तुलना में बहुत अधिक जटिल होने के लिए बाध्य है।
माइक नाकिस

उदाहरण के लिए: मुझे सीएसएस में ड्रॉप डाउन मेनू करने के लिए यह बहुत अधिक जटिल लगता है क्योंकि आपको बहुत सारे ट्वीक्स करने हैं और सामान्य ब्राउज़र पर काम करने के लिए इसे प्राप्त करने के लिए बहुत सारे अतिरिक्त html एलिमेंट्स जोड़ना होगा। आवारा ब्राउज़र (IE, आदि) और भी अधिक आवश्यक है। जावास्क्रिप्ट के साथ यह कोड की एक जोड़ी सरल लाइनों लेता है यह चेतन करने के लिए सीएसएस की एक जोड़ी लाइनों चेतन करने के लिए।
केनेथ

निश्चित रूप से, यह कहे बिना जाता है कि "प्रोग्रामर विवेक की आवश्यकता है"। यदि यह CSS में नहीं किया जा सकता है, या यदि यह ब्राउज़र की असंगतताओं के कारण उचित नहीं है, तो हर तरह से जावास्क्रिप्ट को प्राथमिकता दी जानी चाहिए। मेरा जवाब व्यावहारिक पक्ष के बजाय चीजों के अकादमिक पक्ष पर अधिक है।
माइक नाकिस

क्विक साइड क्वेश्चन (सिर्फ इस जवाब के लिए): क्या IE6 आधुनिक-ब्राउज़रों के समान जावास्क्रिप्ट के संस्करण का समर्थन करता है? - इससे मेरा मतलब है कि जानकारी को अलग करना, इसलिए मुझे ब्राउज़र-विशिष्ट "मानकों" के बारे में चिंता करने की आवश्यकता नहीं है।
एटी

1

जावास्क्रिप्ट एक स्क्रिप्टिंग भाषा है, जिसका अर्थ है कि इसमें कुछ तर्क जोड़ने की क्षमता है। CSS का उपयोग किसी दस्तावेज़ के रूप और शैली का वर्णन करने के लिए किया जाता है। यह मुख्य रूप से दस्तावेज़ संरचना को स्वरूपण और लेआउट (प्रस्तुति) से अलग करने के लिए डिज़ाइन किया गया था।

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


विकिपीडिया:

जावास्क्रिप्ट का उपयोग करें:

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

अपडेट करें। तीसरे बिंदु के लिए, W3C CSS के बारे में कहता है:

:hoverछद्म वर्ग जबकि उपयोगकर्ता किसी इंगित उपकरण के साथ एक तत्व निर्दिष्ट करता है जिनकी लागू होता है, लेकिन जरूरी नहीं कि इसे सक्रिय नहीं है। उदाहरण के लिए, विज़ुअल यूजर एजेंट इस छद्म वर्ग को लागू कर सकता है जब कर्सर (माउस पॉइंटर) तत्व द्वारा उत्पन्न बॉक्स पर हो जाता है।


सीएसएस उपयोग:

CSS से पहले, HTML मार्कअप के भीतर HTML दस्तावेज़ों के लगभग सभी प्रस्तुतिकरण गुण शामिल थे; सभी फ़ॉन्ट रंग, पृष्ठभूमि शैली, तत्व संरेखण, सीमाएं और आकार स्पष्ट रूप से HTML के भीतर, बार-बार वर्णित किए जाने थे। CSS लेखकों को उस जानकारी को एक अलग स्टाइल शीट में ले जाने की अनुमति देता है जिसके परिणामस्वरूप HTML सरल मार्कअप होता है।


1
"माउस कर्सर के रूप में छवियों को बदलना उनके ऊपर चलता है: यह प्रभाव अक्सर ग्राफिकल तत्वों के रूप में प्रदर्शित महत्वपूर्ण लिंक के लिए उपयोगकर्ता का ध्यान आकर्षित करने के लिए उपयोग किया जाता है।" - क्या यह सीएसएस की विशेषता नहीं है?
एटी

@ हां, आप सही हैं (+1), और इसे लाने के लिए धन्यवाद। hoverछद्म वर्ग उस उद्देश्य है। मैं सिर्फ उद्धृत कर रहा था। संपादित।
pferor
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.