इन-लाइन सीएसएस के बारे में इतना बुरा क्या है?


170

जब मैं वेबसाइट स्टार्टर कोड और उदाहरण देखता हूं, तो सीएसएस हमेशा एक अलग फाइल में होता है, जिसका नाम "main.css", "default.css", या "Site.css" जैसा कुछ होता है। हालाँकि, जब मैं पृष्ठ को कोड कर रहा होता हूं, तो मुझे अक्सर सीएसएस को एक DOM तत्व के साथ लाइन में फेंकने के लिए लुभाया जाता है, जैसे कि एक छवि पर "फ्लोट: राइट" सेट करके। मुझे लगता है कि यह "खराब कोडिंग" है, क्योंकि यह उदाहरणों में शायद ही कभी ऐसा होता है।

मैं समझता हूं कि अगर शैली को कई वस्तुओं पर लागू किया जाएगा, तो "डोन्ट रिपीट योरसेल्फ" (डीआरवाई) का पालन करना बुद्धिमान है और प्रत्येक तत्व द्वारा संदर्भित होने के लिए इसे सीएसएस वर्ग में असाइन करें। हालाँकि, अगर मैं सीएसएस को दूसरे तत्व पर नहीं दोहराऊंगा, तो मैं HTML लिखने के रूप में सीएसएस को इन-लाइन क्यों नहीं करूंगा?

प्रश्न: क्या इन-लाइन सीएसएस का उपयोग करना बुरा माना जाता है, भले ही इसका उपयोग केवल उस तत्व पर किया जाए? यदि हां, तो क्यों?

उदाहरण (क्या यह बुरा है?):

<img src="myimage.gif" style="float:right" />

1
मैं हमेशा इनलाइन सीएसएस के खिलाफ हूं, यहां तक ​​कि एक आइटम के लिए भी, लेकिन क्या मैं इतने सारे व्यावसायिक साइटों को स्टाइल विशेषताओं के साथ देखता हूं, कि यह मुझे आश्चर्यचकित करता है कि वास्तव में स्वीकृत अभ्यास क्या है?
यु_ओमिनाई

3
मुझे लगता है कि इनलाइन शैली आलसी हैं। मैं ऐसा इसलिए कहता हूं क्योंकि मैं ऐसा अक्सर खुद करता हूं, इसलिए मैं जानता हूं-मैं इसे कर रहा हूं, क्योंकि मुझे इस बात का कोई पता नहीं है कि क्या शैली रहेगी, इसलिए मैं इसे html के ठीक बगल में करता था। इन दिनों, html5 और व्यावहारिक शैली के लिए <style> </ style> के साथ कहीं भी, मैं लेआउट के साथ खिलवाड़ करते समय पास के <शैली> टैग का उपयोग करता हूं, और उसके बाद कोर / मुख्य css फ़ाइल में इसे स्थानांतरित करता हूं। गति और गतिहीनता के समान लाभ, लगभग कोई भी नुकसान (विशिष्टता एक होने के कारण ऑफ-पेज तत्वों पर दुष्प्रभाव)।
काज़काई

3
@#_ominae - ध्यान रखें कि "व्यावसायिक साइटें" हमेशा सर्वोत्तम प्रथाओं का पालन नहीं करती हैं; वास्तव में बहुत दुर्लभ है। निर्णायक कारक है यदि डेवलपर जानता है, परवाह करता है और उसके पास समय है; या यदि प्रबंधक समय आवंटित करने और कर्मचारियों को कार्यान्वित करने के लिए निर्देशित करने के लिए तैयार है। जब कार्य प्राथमिकता की समय सीमा को पूरा करना है, तो गुणवत्ता आमतौर पर कम हो जाती है।
ब्रायनह

1
यह देखते हुए कि "वाणिज्यिक साइटें" इनलाइन शैलियों का उपयोग करती दिखाई देती हैं, यह कुछ jQuery कॉल (जैसे css()) का उपयोग करने का परिणाम हो सकता है जो इनलाइन शैलियों को लागू करते हैं।
डेव बेकर

जवाबों:


203

जब आप साइट को अलग दिखाना चाहते हैं तो कोड की 100 लाइनों को बदलना होगा। यह आपके उदाहरण में लागू नहीं हो सकता है, लेकिन यदि आप इनलाइन सीएसएस का उपयोग कर रहे हैं जैसे कि चीजों के लिए

<div style ="font-size:larger; text-align:center; font-weight:bold">

प्रत्येक पृष्ठ पर एक पृष्ठ शीर्ष लेख को निरूपित करने के लिए, इसे बनाए रखना बहुत आसान होगा

<div class="pageheader">  

यदि पेजहीडर को एकल स्टाइलशीट में परिभाषित किया गया है, ताकि यदि आप बदलना चाहते हैं कि संपूर्ण साइट पर पृष्ठ शीर्ष लेख कैसा दिखता है, तो आप एक स्थान पर सीएसएस को बदलते हैं।

हालाँकि, मैं एक विधर्मी हूँ और कहूँगा कि आपके उदाहरण में, मुझे कोई समस्या नहीं दिख रही है। आप एक एकल छवि के व्यवहार को लक्षित कर रहे हैं, जिसे शायद एक ही पृष्ठ पर सही दिखना है, इसलिए वास्तविक सीएसएस को एक स्टाइलशीट में डालना संभवतः ओवरकिल होगा।


18
आप कहते हैं कि मेरा उदाहरण कोई समस्या नहीं है, लेकिन आप यह भी स्वीकार करते हैं कि आप एक विधर्मी हैं। मुझे वह तरीका पसंद है।
चेसविज़

8
अगर मुझे हर बार निकेल मिलती थी तो मुझे एक छवि के फ्लोट या कुछ अन्य सीएसएस को संशोधित करना पड़ता था जो मूल रूप से "बस एक तत्व के लिए" होने वाला था ... ... ठीक है, मैं रात के खाने के लिए बाहर जाऊंगा एक अच्छे रेस्तरां में।
Kzqai

8
एक अन्य परिदृश्य जब इनलाइन स्टाइल का उपयोग करना न केवल ठीक है, बल्कि किसी भी शैली को स्टाइल करने का एकमात्र तरीका है: HTML ईमेल।
क्रिस्टोफ मारोस

लेकिन htmlफ़ाइल भी कैश की गई है।

User663031 के जवाब में: कई पृष्ठों वाली वेबसाइट में कई अलग-अलग HTML पृष्ठ होते हैं, लेकिन अपनी सभी शैलियों को केवल एक CSS फ़ाइल में संयोजित कर सकते हैं जिन्हें आसानी से कैश किया जा सकता है।
सिनथोरियन

68

एक अलग सीएसएस फ़ाइल होने का लाभ है

  1. अपने html पेज को बनाए रखना आसान है
  2. लुक में बदलाव करना और महसूस करना आसान होगा और आपके पृष्ठों पर कई विषयों के लिए समर्थन हो सकता है।
  3. आपकी सीएसएस फ़ाइल ब्राउज़र की तरफ कैश की जाएगी। इसलिए जब आप पृष्ठ ताज़ा किया जाता है या उपयोगकर्ता आपकी साइट को नेविगेट करता है, तो हर बार कुछ kbs डेटा लोड न करके आप इंटरनेट ट्रैफ़िक में थोड़ा योगदान देंगे।

2
मैं हर महीने अपने आप से यह सवाल पूछता हूं, (वेब ​​प्रोग्रामिंग के लिए काफी नया) और यह पहली बार है जब मैंने css फाइल के कैश होने के बारे में कुछ पढ़ा है। यह मेरे लिए वहीं है!
गांडर्स

मैं कैश के बारे में भी सोच रहा था, लेकिन मेरे मामले में मैं मर्ज किए गए सीएसएस से निपटने के लिए हूं जो कि 15k लाइनें हैं, यह कबाड़ के सभी बड़े हिस्से को बनाए रखना असंभव है जो केवल एक ही पृष्ठ पर एक बार उपयोग किया जाना था जो कि नहीं था ' अब मौजूद नहीं है इसलिए आप प्रत्येक अस्थायी पेज के लिए प्रत्येक विज़िट पर सीएसएस कोड को फेंक रहे हैं जो आपके ट्रैफ़िक का केवल 1% है। मुझे यकीन नहीं है कि इंटरनेट ट्रैफिक तर्क हर मामले में मान्य है। सौभाग्य से वेब घटक चीजों को बदलने जा रहे हैं!
शैडैब

@ शादोबोब - क्या बड़े के बजाय छोटी सीएसएस फाइलें रखना बेहतर नहीं होगा? एक जेनेरिक हो सकता है जो सभी पृष्ठों के लिए उपयोग किया जाता है, लेकिन फिर अन्य पृष्ठों के लिए छोटे अलग शैली की चादरें हैं। बनाए रखना आसान होना चाहिए। और यदि ट्रैफ़िक समस्या है, तो उत्पादन के लिए संभवतः निर्माण प्रक्रिया में, एक में विलय हो सकता है।
डेरियस .V

26

एचटीएमएल 5 तेजी से सीएसएस प्रोटोटाइप के लिए दृष्टिकोण

या: <style>टैग अब केवल सिर के लिए नहीं रह गए हैं!

हैकिंग सीएसएस

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

कोई इनलाइन शैली विशेषता नहीं

कभी भी अपना सीएसएस इनलाइन न बनाएं, जिससे मेरा मतलब है: <element style='color:red'>या यहां तक ​​कि<img style='float:right'> यह बहुत सुविधाजनक है, लेकिन बाद में एक वास्तविक सीएसएस फ़ाइल में वास्तविक चयनकर्ता विशिष्टता को प्रतिबिंबित नहीं करता है, और यदि आप इसे रखते हैं, तो आपको बाद में रखरखाव भार पर पछतावा होगा।

<style>इसके बजाय प्रोटोटाइप

जहाँ आपने इनलाइन css का उपयोग किया होगा, इसके बजाय इन-पेज <style> एलिमेंट्स का उपयोग करें । कोशिश करो कि बाहर! यह सभी ब्राउज़रों में ठीक काम करता है, इसलिए परीक्षण के लिए बहुत अच्छा है, फिर भी जब भी आप चाहते हैं / आवश्यकता पड़ने पर आपको इस तरह की सीएसएस को अपनी वैश्विक सीएसएस फ़ाइलों में स्थानांतरित करने की अनुमति देता है! (* बस इस बात से अवगत रहें कि चयनकर्ताओं के पास साइट-स्तरीय विशिष्टता के बजाय केवल पृष्ठ-स्तरीय विशिष्टता होगी, इसलिए बहुत सामान्य होने से सावधान रहें) अपनी सीएसएस फ़ाइलों की तरह ही स्वच्छ रहें:

<style>
.avatar-image{
    float:right
}
.faq .warning{
    color:crimson;
}
p{
    border-left:thin medium blue;
    // this general of a selector would be very bad, though.
    // so be aware of what'll happen to general selectors if they go
    // global
}
</style>

अन्य लोगों के इनलाइन css को फिर से बनाना

कभी-कभी आपको समस्या भी नहीं होती है, और आप किसी और के इनलाइन सीएसएस के साथ काम कर रहे हैं, और आपको इसे फिर से भरना होगा। इस के लिए एक और महान उपयोग है<style> पेज के , ताकि आप इनलाइन सीएसएस को सीधे छीन सकें और तुरंत रिफैक्टिंग करते समय इसे कक्षाओं या आईडी या चयनकर्ताओं में पेज पर तुरंत रख सकें। यदि आप जाते समय अपने चयनकर्ताओं के साथ पर्याप्त सावधानी बरतते हैं, तो आप अंतिम परिणाम को एक प्रतिलिपि और पेस्ट के साथ अंत में वैश्विक सीएसएस फ़ाइल में स्थानांतरित कर सकते हैं।

वैश्विक सीएसएस फ़ाइल को तुरंत सीएसएस के हर बिट को स्थानांतरित करना थोड़ा कठिन है , लेकिन इन-पेज <style>तत्वों के साथ, अब हमारे पास विकल्प हैं।


23

अन्य उत्तरों के अलावा .... अंतर्राष्ट्रीयकरण

सामग्री की भाषा के आधार पर - आपको अक्सर एक तत्व की स्टाइल को अनुकूलित करने की आवश्यकता होती है।

एक स्पष्ट उदाहरण दाएं-से-बाएं भाषाओं का होगा।

मान लें कि आपने अपने कोड का उपयोग किया है:

<img src="myimage.gif" style="float:right" />

अब कहते हैं कि आप चाहते हैं कि आपकी वेबसाइट rtl भाषाओं का समर्थन करे - आपको इसकी आवश्यकता होगी:

<img src="myimage.gif" style="float:left" />

तो अब, यदि आप दोनों भाषाओं का समर्थन करना चाहते हैं, तो इनलाइन स्टाइलिंग का उपयोग करके फ्लोट को मान देने का कोई तरीका नहीं है।

CSS के साथ यह आसानी से lang विशेषता के साथ ध्यान रखा जाता है

तो आप ऐसा कुछ कर सकते हैं:

img {
  float:right;
}
html[lang="he"] img { /* Hebrew. or.. lang="ar" for Arabic etc */
  float:left;
}

डेमो


16

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

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

अंत में, कल्पना करें कि आपके पास उन छवि टैग में से 20 हैं। क्या होता है जब आप तय करते हैं कि उन्हें छोड़ दिया जाना चाहिए?


12
"हमेशा, हमेशा जीत" - जब तक कि स्टाइलशीट में महत्वपूर्ण का उपयोग नहीं किया जाता है
जेम्स वेस्टगेट

6
मैं इस धारणा के तहत रहता हूं कि लोग मानवीय हैं और इस तरह के मठों का उपयोग नहीं करते हैं। =)
issa marie tseng

3
@JamesWestgate जब तक कोई उपयोग नहीं करता! महत्वपूर्ण इनलाइन सीएसएस ओवरराइड को ओवरराइड करने के लिए ....
Kzqai

11

सीएसएस का पूरा बिंदु अपनी प्रस्तुति से सामग्री को अलग करना है। तो आपके उदाहरण में आप प्रस्तुति के साथ सामग्री मिला रहे हैं और यह "हानिकारक माना जा सकता है"।


7
मैं आपको ACM को "इनलाइन सीएसएस स्टाइल्स कंसीडरेड हार्मफुल" प्रस्तुत करने के लिए 5 रुपये दूंगा।
BalinKingOfMoria CMs

11

इनलाइन सीएसएस का उपयोग बनाए रखने के लिए बहुत कठिन है।

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


3
+1 - मैं वास्तव में चपेट में आता हूं जब हमारे डिजाइनर एक त्वरित समाधान के रूप में करते हैं, बस कुछ पाने के लिए। बाहरी सीएसएस का उपयोग करने का मतलब है कि एक बड़े पैमाने पर पाठ की जगह कभी नहीं करना चाहिए, जब तक कि एक ही शैली की शीट पर काम न किया जाए। मुझे कल मेरे लिए एक नियंत्रण कक्ष टेम्पलेट जारी किया गया और उदाहरणों को खोजने के लिए 2 1/2 घंटे का समय लगा, जहां इनलाइन शैलियों के साथ आइकन ट्वीक किए गए थे। मैं आपको बता कष्टदायक .. दर्दनाक :)
टिम पोस्ट

1
जब आपके पास 50+ SCSS और आपका निरीक्षण तत्व केवल संपीड़ित CSS को इंगित करता है, तो मुझे यकीन नहीं है कि यह CSS है जो सादगी पर जीतता है!
शैडब जूल

1
@Shadowbob जो स्रोत के लिए हैं। thesassway.com/intermediate/using-source-maps-with-sass
माइक चेम्बरलेन

@ टिमपॉस्ट का एक कारण है कि "
इंस्पेक्ट

9

यह केवल हस्तलिखित कोड पर लागू होता है। यदि आप कोड उत्पन्न करते हैं, तो मुझे लगता है कि यहाँ और फिर इनलाइन शैलियों का उपयोग करना ठीक है, विशेषकर उन मामलों में जहां तत्वों और नियंत्रणों को विशेष उपचार की आवश्यकता होती है।

DRY हस्तलिखित कोड के लिए एक अच्छी अवधारणा है, लेकिन मशीन-जनरेटेड कोड में, मैं "लॉ ऑफ़ डेमेटर" का विकल्प चुनता हूं: "जो एक साथ होता है, उसे एक साथ रहना चाहिए"। यह कोड में हेरफेर करना आसान है जो एक अलग और "रिमोट" सीएसएस फ़ाइल में दूसरी बार वैश्विक शैली को संपादित करने की तुलना में स्टाइल टैग उत्पन्न करता है।

आपके प्रश्न का उत्तर: यह निर्भर करता है ...


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

5

मुझे लगता है कि भले ही आप एक तत्व के लिए एक निश्चित शैली रखना चाहते हैं, आपको इस संभावना पर विचार करना होगा कि आप एक ही शैली को अलग-अलग पृष्ठों पर एक ही शैली पर लागू करना चाहते हैं।

एक दिन हर पृष्ठ पर कोई व्यक्ति एक ही तत्व में अधिक शैलीगत परिवर्तन करने या जोड़ने के लिए कह सकता है। यदि आपके पास बाहरी सीएसएस फ़ाइल में परिभाषित की गई शैलियाँ हैं, तो आपको केवल वहाँ परिवर्तन करना होगा, और यह सभी पृष्ठों में एक ही तत्व में परिलक्षित होगा, इस प्रकार यह आपको सिरदर्द से बचाएगा। :-)


4

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


2

यहां तक ​​कि अगर आप इस शैली का केवल एक बार उपयोग करते हैं तो इस उदाहरण में आपने अभी भी कंटेंट और डिज़ाइन को मिलाया है। लुकअप "चिंताओं का पृथक्करण"।


1

इनलाइन शैलियों का उपयोग करना सेपरेशन ऑफ़ कंसर्न सिद्धांत का उल्लंघन करता है, क्योंकि आप समान स्रोत फ़ाइल में मार्कअप और शैली को प्रभावी रूप से मिला रहे हैं। यह भी, ज्यादातर मामलों में, DRY (खुद को दोहराएं नहीं) सिद्धांत का उल्लंघन करता है क्योंकि वे केवल एक ही तत्व पर लागू होते हैं, जबकि एक वर्ग उनमें से कई पर लागू किया जा सकता है (और CSS नियमों के जादू के माध्यम से भी बढ़ाया जा सकता है! )।

इसके अलावा, यदि आपकी साइट में स्क्रिप्टिंग है, तो वर्गों का विवेकपूर्ण उपयोग फायदेमंद है। उदाहरण के लिए, कई लोकप्रिय जावास्क्रिप्ट लिबास जैसे कि JQuery चयनकर्ताओं के रूप में कक्षाओं पर बहुत अधिक निर्भर करता है।

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

<div class="header-row">It's a row!</div>

की तुलना में बहुत अधिक अभिव्यंजक है:

<div style="height: 80px; width: 100%;">It's...something?</div>

1

इन-पेज css इस समय की बात है क्योंकि Google इसे एक अलग फ़ाइल से लोड किए गए css की तुलना में बेहतर उपयोगकर्ता अनुभव देने के रूप में देता है। एक संभावित समाधान एक पाठ फ़ाइल में सीएसएस डालना है, इसे php के साथ फ्लाई पर लोड करें और इसे दस्तावेज़ सिर में आउटपुट करें। में <head>अनुभाग में शामिल हैं:

<head> ...

<?php
$codestring = file_get_contents("styles/style1.txt");
echo "<style>" . $codestring . "</style>";
?>

... </head>

शैलियों / style1.txt में आवश्यक सीएसएस डालें और यह <head>आपके दस्तावेज़ के अनुभाग में स्थान देगा। इस प्रकार, आपके पास शैली टेम्पलेट, style1.txt का उपयोग करने के लाभ के साथ इन-पेज css होगा, जिसे किसी भी और सभी पृष्ठों द्वारा साझा किया जा सकता है, जिससे साइट-वाइड शैली परिवर्तन केवल एक फ़ाइल के माध्यम से किए जा सकते हैं। इसके अलावा, इस विधि को सर्वर से अलग सीएसएस फ़ाइलों का अनुरोध करने के लिए ब्राउज़र की आवश्यकता नहीं होती है (इस प्रकार पुनर्प्राप्ति / प्रतिपादन समय को कम करना), क्योंकि सब कुछ एक ही बार में php द्वारा वितरित किया जाता है।

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


हाँ! यह "पहले पेंट करने के लिए समय" को कम करने की कोशिश में महत्वपूर्ण है अगर आपकी सभी सीएसएस फाइलों में है, तो यह DOM को तब तक के लिए स्थगित कर देगा जब तक कि स्टाइलशीट को उपयोगकर्ता द्वारा डाउनलोड नहीं किया गया हो। एक इनलाइन में अपनी महत्वपूर्ण शैलियों के होने से <शैलियों> नोड में सिर आप तुरंत डोम को प्रस्तुत करना शुरू कर सकते हैं और बाहरी स्टाइलशीट को हटा सकते हैं। ~ 3 जी कनेक्शन और कथित गति में एक बड़ा कारक निभाता है। आपके उत्तर के लिए +1
Dofficial

1

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


0

भले ही मैं पूरी तरह से ऊपर दिए गए सभी उत्तरों से सहमत हूं कि सीएसएस को एक अलग फ़ाइल में लिखना कोड रीयुसिबिलिटी, मेंटेनेंस से हमेशा बेहतर होता है, चिंताओं के बेहतर पृथक्करण ऐसे कई परिदृश्य हैं जहां लोग अपने उत्पादन कोड में इनलाइन सीएसएस पसंद करते हैं -

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


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

तुम सही हो। इसीलिए हम CSS को इनलाइन करते हैं जब कोड साइज़ बहुत छोटा होता है ताकि पेज साइज़ पर ज्यादा ओवरहेड न हो। याहू पर एक बहुत ही दिलचस्प लेख है! संपूर्ण दिशा-निर्देश पृष्ठ डेवलपर. yahoo.com/performance/rules.html जो कहते हैं कि 60-80% उपयोगकर्ता प्रतिदिन आपकी साइट पर एक खाली कैश ( yuiblog.com/blog/2007/01/04/performance-research-part ) लेकर आते हैं। -2 ) बेशक यह पूरी तरह से वेबसाइट की लोकप्रियता पर निर्भर करता है - एक साइट जितनी लोकप्रिय है, एक गैर खाली कैश होने की संभावना अधिक है।
दप्तेन्दु

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

इन दिनों कई आधुनिक वेबपृष्ठों को सिंगल पेज एप्लिकेशन के रूप में डिज़ाइन किया गया है, पूर्ण पृष्ठ केवल पहली बार लोड होता है। अगली बार पेज को AJAX कॉल के माध्यम से बदल दिया जाता है। तो भले ही पृष्ठ बहुरंगी हो बाहरी सीएसएस केवल एक बार लोड होने जा रहा है।
दप्तेन्दु

0

एएमपी एचटीएमएल स्पेसिफिकेशन के अनुसार प्रदर्शन के उद्देश्यों के लिए सीएसएस को अपनी एचटीएमएल फ़ाइल (बनाम बाहरी स्टाइलशीट) में रखना आवश्यक है। इसका मतलब सीएसएस इनलाइन नहीं है, लेकिन वे कोई बाहरी स्टाइलशीट निर्दिष्ट नहीं करते हैं

इस तरह के एक सेवारत अनुकूलन की एक अपूर्ण सूची हो सकती है:

  • छवि के संदर्भों को छवियों के साथ दर्शकों के व्यूपोर्ट में बदल दें।
  • इनलाइन छवियां जो गुना से ऊपर दिखाई दे रही हैं।
  • इनलाइन सीएसएस चर।
  • विस्तारित घटकों को प्रीलोड करें।
  • HTML और CSS को छोटा करें।

0

अन्य उत्तरों के अलावा, आप इनलाइन CSS के छद्म वर्गों या छद्म तत्वों को लक्षित नहीं कर सकते

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