2015-01-11 10 views
17

नीचे दिए गए कोड में, मुझे आश्चर्य है कि \ बैकस्लैश का क्या अर्थ हो सकता है? मुझे जो पाठ मिल रहा है, उसमें बैकस्लैश चरित्र का सामना नहीं हुआ है। कोड का यह टुकड़ा ब्राउज़र आकारों की पहचान करने के लिए प्रयोग किया जाता है, मुझे विश्वास है।सीएसएस में .container। 31 25 25 मतलब क्या है?

.container.\31 25\25 { 
    width: 100%; 
    max-width: 1500px; /* max-width: (containers * 1.25) */ 
    min-width: 1200px; /* min-width: (containers) */ 
} 
.container.\37 5\25 { /* 75% */ 
    width: 900px;  /* width: (containers * 0.75) */ 
} 
.container.\35 0\25 { /* 50% */ 
    width: 600px;  /* width: (containers * 0.50) */ 
} 
.container.\32 5\25 { /* 25% */ 
    width: 300px;  /* width: (containers * 0.25) */ 
} 
+2

कोड खराब लिखा है। जब तक मजबूर नहीं किया जाता है तब तक इसका उपयोग नहीं करना चाहिए। एक सीएसएस नौसिखिया के रूप में, आपको तब तक इसे पढ़ना नहीं चाहिए जब तक मजबूर नहीं किया जाता। गड़बड़ी '125%' जैसे वर्ग के नामों के उपयोग के कारण होती है, जो एक से अधिक तरीकों से खराब (औपचारिक रूप से वैध लेकिन खराब) हैं। –

+0

@ जुक्काका। कोर्पेला वे किस तरीके से खराब हैं? –

+3

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

उत्तर

23

spec के अनुसार,

पहचानकर्ता भी बच गए वर्ण और एक अंकीय कोड के रूप में किसी भी ISO 10646 चरित्र (अगले आइटम देखें) हो सकते हैं। उदाहरण के लिए, पहचानकर्ता "बी & डब्ल्यू?" "बी \ & डब्ल्यू \" के रूप में लिखा जा सकता है या "बी \ 26 डब्ल्यू \ 3 एफ"। [...]

सीएसएस 2.1 में, बैकस्लैश (\) वर्ण तीन प्रकार के चरित्र से बचने में से एक को इंगित करता है। एक सीएसएस टिप्पणी के अंदर, बैकस्लैश स्वयं के लिए खड़ा है, और अगर बैकस्लैश तुरंत स्टाइल शीट के अंत के बाद है, तो यह भी (यानी, एक DELIM टोकन) के लिए खड़ा है।

सबसे पहले, एक स्ट्रिंग के अंदर, एक बैकस्लैश एक नई पंक्ति के बाद नजरअंदाज कर दिया है (अर्थात, स्ट्रिंग या तो बैकस्लैश या न्यू लाइन को रोकने के लिए नहीं समझा जाता है)। एक स्ट्रिंग के बाहर, एक बैकस्लैश एक न्यूलाइन के बाद खड़ा है (यानी, एक नई लाइन के बाद एक DELIM)।

दूसरा, यह विशेष सीएसएस वर्णों के अर्थ को रद्द करता है। किसी भी चरित्र (हेक्साडेसिमल अंकों, linefeed, गाड़ी वापसी, या रूप फ़ीड को छोड़कर) अपनी विशेष अर्थ निकालने के लिए एक बैकस्लैश के साथ भाग ले सकते हैं। उदाहरण के लिए, "\" "एक दोहरे उद्धरण से मिलकर एक श्रृंखला है। शैली पत्रक preprocessors एक शैली पत्रक से इन बैकस्लैश को दूर नहीं करना चाहिए के बाद से है कि शैली पत्रक के अर्थ बदल जाएगा।

तीसरा, बैकस्लैश पलायन करने के लिए लेखकों की अनुमति देते हैं उन वर्णों का संदर्भ लें जिन्हें वे आसानी से किसी दस्तावेज़ में नहीं डाल सकते हैं। इस मामले में, बैकस्लैश है जिसके बाद अधिकतम छह हेक्साडेसिमल अंक (0..9ए..एफ) हैं, जो आईएसओ 10646 ([आईएसओ 10646]) चरित्र के लिए खड़े हैं कि संख्या है, जो शून्य नहीं होना चाहिए के साथ। (यह सीएसएस 2.1 अगर एक शैली पत्रक एक वर्ण है के साथ यूनिकोड शून्य कोडपॉइंट क्या होता है में अपरिभाषित है।) अगर रेंज में एक चरित्र [0-9a-एफए एफ] हेक्साडेसिमल संख्या, के अंत संख्या स्पष्ट कर दिया जाना करने की जरूरत है इस प्रकार है।

    एक अंतरिक्ष (या अन्य सफेद स्थान चरित्र) के साथ
  1. :: वहाँ ऐसा करने के लिए दो तरीके हैं "\ 26 बी" ("& बी")। इस मामले में, उपयोगकर्ता एजेंटों एक भी सफेद स्थान चरित्र के रूप में एक "CR/वामो" जोड़ी (U + 000D/U + 000A) व्यवहार करना चाहिए।
  2. वास्तव में 6 हेक्साडेसिमल अंक प्रदान करके: "\ 000026B" ("& बी ')

वास्तव में, इन दोनों तरीकों जोड़ा जा सकता है। एक हेक्साडेसिमल भागने के बाद केवल एक सफेद स्थान चरित्र को अनदेखा किया जाता है। ध्यान दें कि इसका अर्थ है कि भागने अनुक्रम के बाद एक "वास्तविक" स्थान दोगुनी होनी चाहिए।

संख्या श्रेणी यूनिकोड द्वारा अनुमति के बाहर है (उदा, "\ 110000" वर्तमान यूनिकोड में अधिकतम 10FFFF की अनुमति है), UA "प्रतिस्थापन चरित्र" (यू + एफएफएफडी) के साथ भागने को प्रतिस्थापित कर सकता है। यदि वर्ण प्रदर्शित किया जाना है, तो UA को एक दृश्यमान प्रतीक, जैसे "गायब चरित्र" ग्लिफ (सीएफ 15.2, बिंदु 5) दिखाना चाहिए।

इसलिए

, अनुसरण कर रहे हैं बराबर:

.container.\31 25\25 <--> .container[class ~= "125%"] 
.container.\37 5\25 <--> .container[class ~= "75%"] 
.container.\35 0\25 <--> .container[class ~= "50%"] 
.container.\32 5\25 <--> .container[class ~= "25%"] 

ध्यान दें कि बचने के लिए महत्वपूर्ण है, अन्यथा वे वैध पहचानकर्ता (जोर मेरा) नहीं होगा:

सीएसएस में, पहचानकर्ता ( selectors में तत्व नाम, कक्षाएं और आईडी समेत) केवल वर्ण [ए-जेए-जेड -9] और आईएसओ 10646 वर्ण यू + 0 हो सकते हैं 0 ए 0 और उच्चतर, साथ ही हाइफ़न (-) और अंडरस्कोर (_); वे अंकों से, दो हाइफ़न या एक हाइफ़न के साथ अंकों से शुरू नहीं हो सकते हैं।

इसलिए, निम्नलिखित अवैध हैं:

.container.125% 
.container.75% 
.container.50% 
.container.25% 

शायद यह इस बेला के साथ साफ हो सकता है:

.container { 
 
    background: red; 
 
    margin: 10px; 
 
} 
 
.container.\31 25\25 { /* 125% */ 
 
    width: 100%; 
 
    max-width: 1500px; /* (containers * 1.25) */ 
 
    min-width: 1200px; /* (containers * 1.00) */ 
 
} 
 
.container.\37 5\25 { /* 75% */ 
 
    width: 900px;  /* (containers * 0.75) */ 
 
} 
 
.container.\35 0\25 { /* 50% */ 
 
    width: 600px;  /* (containers * 0.50) */ 
 
} 
 
.container.\32 5\25 { /* 25% */ 
 
    width: 300px;  /* (containers * 0.25) */ 
 
}
<div class="container 125%">125%</div> 
 
<div class="container 75%">75%</div> 
 
<div class="container 50%">50%</div> 
 
<div class="container 25%">25%</div>

+0

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

+0

भागने की आवश्यकता क्यों है? क्या हम इसके बिना काम कर सकते हैं? – Elizabeth

+0

@ एलिजाबेथChau268 यदि आप भाग नहीं पाते हैं, तो यह मान्य पहचानकर्ता नहीं होगा। देखें http://www.w3.org/TR/CSS21/syndata.html#characters – Oriol

संबंधित मुद्दे