सीएसएस में 'प्रॉपर्टी: 0' या 'प्रॉपर्टी: 0 पीएक्स'?


86

मैंने देखा है कि इस नोटेशन का बहुत उपयोग किया गया था, और मैं सोच रहा था कि क्या इन दोनों नोटेशनों के बीच कोई उल्लेखनीय अंतर है?

element#id
{
  property: 0;
}

तथा

element#id
{
  property: 0px;
}

मैं property: 0px;हर समय उपयोग करता हूं, जैसा कि मुझे लगता है कि यह क्लीनर लग रहा है, लेकिन अगर ब्राउज़र की 0pxतुलना में अलग तरह से व्याख्या करता है तो मुझे वास्तव में यकीन नहीं है 0

क्या किसी को पता है कि कौन सा बेहतर या सही है?


1
अच्छा सवाल है, और इस संभावित डुप्लिकेट से पहले: stackoverflow.com/q/5359222/292060 , लेकिन किसी के पास एक बेहतर जवाब है, जो कल्पना को उद्धृत करता है।
गोयडे

1
आप जो भी उपयोग करते हैं, वह पूरी परियोजना के माध्यम से संगत रहना सुनिश्चित करें।
PBwebD

जवाबों:


56

इकाई पहचानकर्ता वैकल्पिक हैं , लेकिन कोई उल्लेखनीय प्रदर्शन वृद्धि नहीं है (हालांकि आप दो पात्रों को बचा रहे हैं )।

सीएसएस 2 - से W3C सीएसएस सिंटेक्स के लिए 2.1 विशिष्टता और बुनियादी डेटा प्रकार :

एक लंबाई मान (इस विनिर्देश में <लंबाई> द्वारा चिह्नित) का प्रारूप एक इकाई पहचानकर्ता (जैसे, px, em, आदि) के तुरंत बाद एक <नंबर> (एक दशमलव बिंदु के साथ या बिना) है। एक शून्य लंबाई के बाद, इकाई पहचानकर्ता वैकल्पिक है।

(जोर मेरा)

CSS3 - से W3C सीएसएस मूल्यों और इकाइयों मॉड्यूल स्तर 3 (वर्तमान में उम्मीदवार सिफ़ारिश इस लेखन के समय)

शून्य लंबाई के लिए यूनिट आइडेंटिफायर वैकल्पिक है (अर्थात 0 के रूप में सिंटैक्टिक रूप से दर्शाया जा सकता है)।


1
संदेह है कि GZIP संपीड़न सक्रिय होने पर आप वास्तव में 2 बाइट्स बचाते हैं। यह एक ऐसी बात है जिसे आप मेरे साथ सहज महसूस कर रहे हैं। हालांकि कुछ CSS लिंटर्स 0px को नापसंद कर सकते हैं।
मैनुएल ने श्मिट

34

जबकि यूनिट वैकल्पिक है जब मूल्य होता है 0, तो मैं इसे छोड़ देता हूं, क्योंकि मैं तब मूल्य पर क्लिक करके और ऊपर / नीचे तीर कुंजियों को दबाकर क्रोम के डेवलपर टूल के साथ मूल्यों को मोड़ सकता हूं। एक इकाई के बिना, यह वास्तव में संभव नहीं है।

साथ ही, सीएसएस मिनिफ़ायर यूनिट्स को 0वैसे भी मान से अलग कर देते हैं, इसलिए यह वास्तव में अंत में मायने नहीं रखेगा।


+1 यह देखने के लिए कि मिनीफायर्स इसके बारे में जानते हैं, और यह कि उन्हें शामिल करने के लिए कार्यक्षमता को दर्शाता है।
ग्राहम पी हीथ

9
यदि आप किसी पहचानकर्ता के बिना 0 पर अप / डाउन एरो की दबाते हैं तो क्रोम का डेवलपर टूल पीएक्स पर डिफॉल्ट करता है। साथ ही, Chrome के डेवलपर टूल में, यदि आप 0 से नीचे आते हैं, तो यह px को बनाए रखता है।
PBwebD

1
@ test123: मुझे नहीं लगता कि यह उस समय था जब मैंने यह उत्तर लिखा था, लेकिन यह जानना अच्छा है।
ब्लेंडर

यदि आवेदन में कई स्थानों पर उनका उपयोग किया जाता है, तो 0 और 0px के साथ कोई निष्पादन समय समस्या होगी?
कुरकुला

15

वह एक जैसे है। ब्राउज़र दोनों को 0 के रूप में व्याख्या करता है, इसलिए आपके लिए जो भी अधिक पठनीय है, उसके साथ जाएं।


क्या कोई 'सही' या मानक-अनुरूप विकल्प है? मुझे पता है कि आप लिख नहीं सकते हैं border: 3 solid, क्योंकि कोई इकाई नहीं है, लेकिन क्या शून्य पर कोई वेब मानक हैं?
ब्लेंडर

1
जैसा कि मैंने अपने उत्तर में उल्लेख किया है, ऐसा इसलिए है क्योंकि वे सभी समान हैं: शून्य समय कुछ भी शून्य है, चाहे आप पिक्सेल के आकार से गुणा कर रहे हों, एक एम, एक पूर्व, या प्रतिशत द्वारा।
AgentConundrum

सुनिश्चित नहीं हैं कि आप वेब मानकों से क्या मतलब है, लेकिन "मार्जिन: 10px 0 0 10px" ठीक काम करता है, जैसा कि "सीमा: 0" का अर्थ है कि आप शून्य का उपयोग "कोई नहीं" के बराबर कर सकते हैं।
टॉम

1
@blender प्रलेखन के लिए एक लिंक के साथ वेब मानकों के लिए नीचे मेरे जवाब की जाँच करें।
क्रिस बिएर

3
-1 किसी भी संदर्भ, लिंक या तर्क के बिना तर्कपूर्ण सामग्री के साथ उत्तर के लिए। कृपया या तो डेटा के साथ अपनी राय का समर्थन करें या स्पष्ट रूप से कहें कि यह आपकी राय है, तथ्यात्मक जानकारी नहीं।

11

किसी भी चीज का शून्य शून्य होता है। 0px= 0%= 0em= 0pt=0

ज्यादातर लोग यूनिट को बंद कर देते हैं क्योंकि यह केवल अनावश्यक अव्यवस्था है।


1
एक अपवाद समय इकाइयाँ हैं:00s0ms
हेनरिक क्रिस्टेंसन

5

जहां तक ​​मुझे पता है कि उनके बीच कोई मतभेद नहीं है, तब से 0px = 0em = 0ex = 0% = 0। यह विशुद्ध रूप से आपके ऊपर है, डेवलपर के रूप में, यह तय करने के लिए कि आपको क्या पसंद है (जब तक कि आपके पास कॉरपोरेट कोडिंग मानक नहीं हैं जो आपको निश्चित रूप से पालन करने की आवश्यकता है)।

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


6
यदि आप डेटा की एक महत्वपूर्ण राशि (जैसे कि आप Google हैं) पर जोर दे रहे हैं, तो आप बेहतर था कि आप अपने लिए ऐसा करने वाले उपकरण का उपयोग करें: p
John Kurlak

4

शून्य पिक्सेल शून्य इंच और शून्य मीटर और इसके आगे के बराबर है। 0आपको जो चाहिए वह यह है।


एक पल के लिए मैं आपके पोस्ट को वोट करने जा रहा था क्योंकि मैं आपके बयान के बारे में 0 पिक्सल 0 इंच के बराबर होने के बारे में सोच रहा था, और इसी तरह यह गलत था। :) क्योंकि मेरे मन में मैं सोच रहा था कि यह कैसे हो सकता है? वे विभिन्न इकाइयाँ हैं।
वेब_डिजाइनर

2

मैं व्यक्तिगत रूप 0से क्लीनर की तुलना में मिल रहा है 0px। यह दो अतिरिक्त वर्ण हैं जो जोड़ सकते हैं। जब आपको ज़रूरत न हो तो अतिरिक्त बाइट्स क्यों जोड़ें। मैंने देखा है padding: 0px 0px 0px 0pxजो आसानी padding: 0से बहुत बार व्यक्त किया जा सकता है ।


1

आप या तो उपयोग कर सकते हैं - मेरी सबसे अच्छी सलाह यह है कि बहुत चिंता न करें लेकिन इसे एक ही तरह से या दूसरे तरीके से करने में लगातार रहें। मैं निम्नलिखित कारणों से व्यक्तिगत रूप से '0px' बताना चाहता हूँ:

  • 0px का उपयोग करना आपके द्वारा निर्दिष्ट अन्य 'पीएक्स' आकारों के सभी चीजों को अधिक सुसंगत बनाता है
  • यह अधिक वर्बोज़ भी है और यह बहुत स्पष्ट करता है कि आप 'स्विच इस ऑफ' फ्लैग के बजाय एक शून्य लंबाई सेट कर रहे हैं
  • यदि आवश्यक हो तो इसे एक और मान बनाने के लिए '0px' मान को ट्विक करना थोड़ा आसान है

0

जैसा कि अन्य लोग कहते हैं, यह वास्तव में कोई फर्क नहीं पड़ता अगर इसकी 0, हालांकि मैं अपने सभी मूल्यों में माप जोड़ने का चयन करता हूं, ताकि कोई और मेरी सीएसएस फाइलों को देख सके और माप सके कि वे कहीं और क्या व्यवहार कर रहे हैं।

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