2011-12-20 8 views
5

कुछ विरासत कोड जो मुझे बनाना है, वास्तव में मुझे the cons of global CSS reset महसूस करता है।वैश्विक सीएसएस रीसेट लागू करने के बाद डिफ़ॉल्ट गुण वापस प्राप्त करें

मैं पुराने foo.css कि

* {margin:0; padding:0;} 

के साथ शुरू होता है और मैं किसी भिन्न फ़ाइल bar.css पर प्रतिलिपि करने के भी यह tweak मेरी जरूरतों के लिए इस्तेमाल किया (सीएसएस के साथ बाहर रीसेट), और करने के लिए इसका इस्तेमाल करते हैं केवल 0 कोड में foo.css को प्रतिस्थापित करें। मैं साइट के पुराने वर्गों के साथ पिछड़ा संगतता के बारे में चिंता न करने के लिए ऐसा करता हूं।

अब यह काफी बोझिल है: वैश्विक परिवर्तनों के लिए मुझे दोनों फ़ाइलों को संशोधित करना याद रखना होगा। तो अब मेरी bar.cssfoo.css प्रदान कर रहा है, के साथ शुरू:

@import url("style.css"); 

समस्या यह है कि अब मैं भी सीएसएस रीसेट वारिस है।

वहाँ किसी भी तरह से (†) कुछ तत्वों (हेडर, सूचियों आदि) वापस उनके डिफ़ॉल्ट मानों के margin & padding गुण लाने के लिए है - इससे पहले कि रीसेट लागू किया गया था लोगों को?

(†) सीएसएस चश्मा में परिभाषित अनुसार प्रत्येक संपत्ति को मैन्युअल रूप से अपने प्रारंभिक मान पर सेट करने के अलावा।

उत्तर

6

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

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

प्रैक्टिस में, दिए गए परिस्थिति में सबसे अच्छा शॉट सीएसएस 2.1 spec के Appendix D को जांचना होगा और वहां दिए गए मानों का उपयोग करना होगा। मार्जिन जैसी चीजों के लिए, यह ज्यादातर ब्राउज़र डिफ़ॉल्ट का उपयोग करने का प्रभाव पैदा करेगा।

0

मुझे लगता है कि * {margin: auto} मार्जिन रीसेट करेगा (या h1 {margin: auto} अगर केवल उस तत्व को रीसेट किया जा रहा है।), लेकिन यह पैडिंग के लिए काम नहीं करेगा। तकनीकी रूप से, spec पहले से शून्य होने के लिए पैडिंग के लिए है, हालांकि, यदि कोई ब्राउज़र इसे अन्यथा लागू करता है, तो मुझे नहीं लगता कि इसे रीसेट करने का कोई तरीका होगा।

1

चाहते हैं कि आप ब्राउज़र-डिफ़ॉल्ट पर वापस लौट सकें, क्यों न केवल अपना खुद का सेट करें?

* { margin: 0; } 
h1 { margin: 10px 0; } 

h1 वैश्विक चयनकर्ता * पर पूर्वता लेता है:

आपको बस इतना करना की आवश्यकता होगी अपने वैश्विक सीएसएस रीसेट के तहत अपने घोषणाओं को जोड़ने है।

इससे normalize your CSS मदद मिलेगी।

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