2009-10-09 17 views
9

पर लागू होता है मान लें कि मेरे पास विजेट है जो जटिल सीएसएस का उपयोग करता है, और कई वेबसाइटों में एम्बेड किया जाना चाहिए जिनमें सभी के पास उनके सीएसएस हैं।सीएसएस रीसेट जो केवल #widget

यदि मैं सभी विजेट के सीएसएस नियमों को "# विड्जेट" के साथ उपसर्ग करता हूं, तो वे बाहर के किसी भी चीज़ पर लागू नहीं होंगे, इसलिए एक समस्या ठीक हो गई है। दुर्भाग्यवश साइट के सीएसएस नियम अभी भी विजेट को गड़बड़ कर सकते हैं।

यदि मैं उचित रीसेट नियमों के साथ # सीडेट के अंदर सभी सीएसएस रीसेट करता हूं, तो उम्मीद है कि वे सभी बाहरी नियमों को ओवरराइड करेंगे, है ना? (क्योंकि मेरे नियम #id और बाहरी नियमों का उपयोग मेरे विजेट के अंदर किसी भी आईडी को नहीं जानते हैं, वे उन्हें ओवरराइड नहीं कर सकते हैं, है ना?! महत्वपूर्ण इसके बावजूद)

सभी सीएसएस को ज्ञात राज्य में रीसेट करने का सबसे अच्छा तरीका क्या है? अधिकांश सीएसएस रीसेट ब्राउज़र डिफ़ॉल्ट से शुरू होते हैं, वे मनमानी सीएसएस रीसेट नहीं करते हैं। क्या कोई सीएसएस रीसेट है जो इससे कोई फर्क नहीं पड़ता?

उत्तर

1

हाँ, अपने सीएसएस कुछ भी विजेट के बाहर घोषित ओवरराइड करना चाहिए, लेकिन अपने रीसेट काफी व्यापक होना चाहिए। मैं http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/ के एक संशोधित संस्करण का उपयोग करने का सुझाव देता हूं, लेकिन आपको सभी चयनकर्ताओं को स्वयं संशोधित करना होगा।

मैं भी अपने चयनकर्ताओं को मजबूत करने के लिए परीक्षा की जाएगी, इसलिए बजाय

#widget tagname{} 

उपयोग

html body #widget tagname{} 

आपका चयनकर्ताओं अब एक बहुत अधिक वजन होगा।

+1

मुझे लगता है कि विजेट किसी भी पृष्ठ पर रखा जा सकता है तो सीएसएस कि आप रीसेट करने की आवश्यकता अज्ञात है। पूरी तरह से सुरक्षित होने के लिए उन्हें #widget के साथ वैश्विक रीसेट (जैसे एरिक मेयर) के नियमों को उपसर्ग करने की आवश्यकता है। – easement

+0

मैं पूरी तरह से सहमत हूं (मैंने इसे भी लिंक किया है) – Rowan

+1

एरिक के रीसेट केवल ब्राउज़र डिफ़ॉल्ट को रीसेट करने लगते हैं, न कि संभवतः सीएसएस वाले सभी चीजों को, इसलिए वे शायद पर्याप्त नहीं होंगे। – taw

12

मैं एक ही समस्या को हल करने का प्रयास करते हुए cleanslate.css भर में आया था:

https://github.com/premasagar/cleanslate

मैं अभी तक उत्पादन में इसका इस्तेमाल नहीं है, लेकिन यह जाहिरा तौर पर बीबीसी वर्ल्ड सर्विस के विकास से बाहर आया विजेट।

+5

नोट - क्लीनस्लेट परियोजना Google Code से GitHub में स्थानांतरित हो गई है: https://github.com/premasagar/cleanslate (मैंने प्रोजेक्ट बनाया - और हाँ, यह उस समस्या को हल करता है;) – Premasagar

1

उपयोग नाम स्थान & & कम रीसेट

#my-ns { 
    @import ".../reset.less"; 

    ... your other styles ... 
} 
संबंधित मुद्दे