स्लैश बंद करने से पहले अंतरिक्ष?


93

मैंने अक्सर एक्सएमएल और एचटीएमएल टैग में बंद स्लैश से पहले एक स्थान देखा है। XHTML लाइन ब्रेक संभवतः विहित उदाहरण है:

<br />

के बजाय:

<br/>

अंतरिक्ष सतही लगता है। वास्तव में, मुझे लगता है कि यह शानदार है।

इस स्पेस को लिखने का क्या कारण है?

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

यदि संगतता पीछे नहीं है, तो क्या यह पठनीयता का मुद्दा है? ग्रेट ओपन कर्ली ब्रेस डिबेट के समान?

void it_goes_up_here() {

int no_you_fool_it_goes_down_there()
{

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


5
मुझे इसकी आदत है कि <br /> सिर्फ <br/> से बेहतर है
mk12

जवाबों:


64

इसका जवाब है लोग XHTML1.0 विनिर्देश के परिशिष्ट C का पालन ​​करना चाहते हैं । यदि आपको केवल XHTML को टेक्स्ट / html के रूप में परोसना है, तो आपको करना चाहिए । जो ज्यादातर लोग करते हैं, क्योंकि इंटरनेट एक्सप्लोरर में एक्सएचटीएमएल का वास्तविक माइम प्रकार (एप्लिकेशन / एचटीएमएल + एक्सएमएल) काम नहीं करता है।

कोई भी वर्तमान ब्राउज़र अंतरिक्ष की परवाह नहीं करता है। ब्राउजर इन बातों को बहुत सहनशील है।

एचटीएमएल पार्सर्स ने ट्रेलिंग स्लैश को एक अपरिचित विशेषता के रूप में सुनिश्चित करने के लिए अंतरिक्ष का उपयोग किया जाना आवश्यक था।


2
क्या आप "इस्तेमाल होने वाले" के बारे में अधिक विशिष्ट हो सकते हैं? वर्ष और / या ब्राउज़र संस्करण करेगा, धन्यवाद!
ग्रेग मैट्स

5
मुझे लगता है कि w3.org/TR/xhtml1/#C_2 इस उत्तर के लिए अधिक सटीक लिंक है। तो, ऐसा लगता है कि XHTML 1.0 परिशिष्ट C2 प्रभावी रूप से अप्रचलित है और यह कि अंतरिक्ष लिखना विशुद्ध रूप से एक स्वाद है।
ग्रेग मैट्स

1
क्षमा करें, उपयोग किया जा रहा है, का अर्थ "है" - यह सुनिश्चित करने के संबंध में कि एक HTML पार्सर ट्रेलिंग स्लैश को एक अपरिचित विशेषता के रूप में मानता है, सभी HTML पार्सर ब्राउज़र नहीं हैं। मैं अनुमान नहीं लगाना चाहूंगा कि कौन सा ब्राउज़र संस्करण यदि कोई है, लेकिन मुझे IE4 या नेटस्केप 4 की शिकायत नहीं है।
ली कोवलकोव्स्की

3
वास्तव में वास्तविक माइम प्रकार अनुप्रयोग / xhtml + xml है।
3:12 बजे mk12

3
@JanAagard: मुझे पता नहीं, मुझे यह याद होगा - यदि मैंने IE4 और नेटस्केप 4 पर वेब डेवलपमेंट शुरू किया है। तो इसका जवाब आपको इस आशय से जुड़ी टिप्पणी से भी है, यह वास्तव में नेटस्केप 3 कहती है
ली कोवल्किस्की

31

नेटस्केप 4.80 HTML में <br/> और <br /> के विभिन्न व्यवहार दिखा रहा है

दस्तावेजों को दिखाने वाले नेटस्केप 4.80 के स्क्रीनशॉट के साथ बॉबिन के उत्तर का समर्थन करना

data:text/html,<title>space</title>foo<br />bar

(शीर्ष बाएँ, लाइनब्रेक प्रदान) और

data:text/html,<title>no space</title>foo<br/>bar

(नीचे बाईं ओर, लाइनब्रेक को अनदेखा किया गया)।


तस्वीर दिखाने के लिए जवाब के रूप में पोस्टिंग

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

(अब वहाँ पुन: पेश करने में असमर्थ, लेकिन इससे प्रभावित कई ब्राउज़रों के बारे में ली कोवल्कोस्की के बयान का समर्थन करता है।)


25

क्या वे मुद्दे अभी भी प्रासंगिक हैं या हम अभी भी, IE3 संगतता के लिए अतिरिक्त स्थान जोड़ रहे हैं?

आप करीब थे - यह नेटस्केप 4 के लिए है।

अन्य युक्तियों को देखना दिलचस्प है, लेकिन यह सब इसके लिए था।


2
धन्यवाद! क्या आप इसके लिए कोई संदर्भ प्रदान कर सकते हैं?
ग्रेग मैट्स

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

ऐसा था कि आपका XHTML दस्तावेज़ नेटस्केप पर भी प्रस्तुत करेगा। विशेष रूप से यह ब्रेक टैग और इमेज टैग के लिए था। प्राथमिक स्रोत: मैं 10 साल पहले IE4 और NS3 संगतता के लिए कोडिंग कर रहा था।
फिलाहॉप बुस्बी

4

नहीं, स्थान की आवश्यकता नहीं है लेकिन कुछ पुराने ब्राउज़रों के लिए आवश्यक है कि वे उन टैगों को सही ढंग से प्रस्तुत करें। यह करने का उचित तरीका अतिरिक्त स्थान के बिना है क्योंकि यह कुछ एक्सएमएल एक्सएमएल से विरासत में मिला है।


1
कौन से पुराने ब्राउज़र विशेष रूप से? मुझे यह सीखने में दिलचस्पी है कि क्या हम महत्वपूर्ण बाजार हिस्सेदारी वाले ब्राउज़रों के बारे में बात कर रहे हैं।
ग्रेग मैट्स

नहीं थे। IE5 और पुराने ज्यादातर।
19uc में jmucchiello

3

XHTML में, br टैग्स को बंद किया जाना चाहिए, लेकिन स्थान आवश्यक नहीं है । यह एक शैलीगत बात है। HTML में, br टैग्स को बंद नहीं किया जा सकता है, इसलिए दोनों गलत हैं।


उस दस्तावेज़ का परिशिष्ट C कहता है कि आपके पास एक स्थान होना चाहिए।
182764125216

3

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


0

क्या होगा अगर वहाँ एक बहुत आलसी HTML लेखक वहाँ था या शायद वह उद्धरण चिह्नों का डर था। निम्नलिखित पर विचार करें यदि आप उसका रोबोट पेज क्रॉलर थे ...

<img src=http://myunquotedurl.com/image.jpg />

बनाम

<img src=http://myunquotedurl.com/image.jpg/>

यह छोटा लग सकता है लेकिन यह देखो कि अगर अंतरिक्ष नहीं है तो यह क्या कर सकता है। रोबोट को पता नहीं चलेगा कि स्लैश यूआरएल का हिस्सा है या समापन टैग का हिस्सा है।


12
खैर, लेकिन वैसे भी यूआरएल के आसपास उद्धरण होना चाहिए
फ्लोरियन वेंडेलबोर्न

-1

मुझे लगता है कि सफेद स्थान इस विचार को पुष्ट करने का एक तरीका है कि यह टैग खाली है और यह अपने आप बंद हो जाता है।

आज मैं श्वेत स्थान का उपयोग नहीं करता क्योंकि मुझे कभी भी श्वेत स्थान की समस्या नहीं थी।


1
"सुदृढ" एक "मजबूत" के लिए एक उपयुक्त शब्द है
हाओ

नोटिस के लिए धन्यवाद। यह देखकर अच्छा लगा कि यहाँ हमारे पास लिखने की गुणवत्ता सुनिश्चित करने के लिए लोग हैं।
19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.