2011-07-27 15 views
6

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

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

ऐसा कुछ मेरा इरादा है, हालांकि निश्चित रूप से यह अमान्य है।

.*.* { /* not valid (I wish) */ 
    outline:2px dotted red; 
    } 

मैं समझता हूँ कि यह अगर मैं कक्षाओं पता था कि काम करेगा, समस्या यह है कि मैं किसी भी दो वर्गों झंडा करना चाहते हैं:

.classA.classB { /* not good enough */ 
    outline:2px dotted red; 
    } 

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

+0

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

+0

है मुझे लगता है कि जेएस एकमात्र समाधान है; आप जेएस का उपयोग क्यों नहीं करते? क्या आप कह सकते है? –

+0

सीएसएस को आसानी से जोड़ने और हटाने के लिए आसान है। जेएस हालांकि काम करेगा। – SimplGy

उत्तर

4

सबसे झूठे सकारात्मक (जैसे अंतरिक्ष गद्देदार विशेषता मान) को निकालने के लिए, तो आप इस का भी उपयोग करेंगे आपका स्वयं का जवाब है, लेकिन यह कुछ भी नहीं है, और मुझे लगता है कि व्हाइटसाइट पैडिंग के साथ वर्ग विशेषताओं की तुलना में बहुत कम होने की संभावना है।

1

अकेले सीएसएस का उपयोग करना संभव नहीं है।

और, यदि मैं ऐसा कह सकता हूं, तो आपका उत्पादन वातावरण मूर्खतापूर्ण है। एकाधिक कक्षाओं के बिना सीएसएस एक टैग क्लाउड की तरह है जिसमें प्रति आइटम केवल एक टैग की अनुमति है। यह कुछ उद्देश्य को हरा देता है। इस तरह से सीएसएस का दुरुपयोग न करने के लिए अपने उत्पादन वातावरण को ठीक करें, बजाय अपने लेखकों को सामग्री को वर्णित रूप से वर्णित करने के बजाय, उचित रूप से सीमित करने के बजाय।

[class*=" "] { 
    outline:2px dotted red; 
    } 

इस वर्ग विशेषता में एक स्थान के साथ कुछ भी प्रकाश डाला गया है:

+0

मैं असहमत नहीं हूं। हम अपनी साइट को केटाई मोबाइल उपकरणों पर काम करने के लिए एक जापानी सामग्री अनुकूलन प्रणाली का उपयोग कर रहे हैं। बहुत सारे विकल्प नहीं हैं। – SimplGy

6

मैं सिर्फ एक स्वीकार्य जवाब मिल गया। यह कुछ झूठी सकारात्मक हो जाता है, क्योंकि कभी-कभी क्लास एट्रिब्यूट में रिक्त स्थान वैध सर्वर साइड कोड के परिणामस्वरूप वैध रूप से होता है, लेकिन मैं झूठी नकारात्मकताओं के झूठे सकारात्मक पसंद करता हूं।

कोई बेहतर विचार? के रूप में में Phrogz द्वारा बताया

[class*=" "]:not([class^=" "]):not([class$=" "]) { 
    outline: 2px dotted red; 
} 

यह अभी भी इस तरह class="foo foo" के रूप में मूल्यों में दोहराया वर्गों को फ़िल्टर नहीं करता है:

+1

नोट भी (शायद असंभव, और इसलिए स्वीकार्य) यह 'वर्ग = "foo foo" भी ध्वजांकित करेगा, जो वास्तव में केवल एक वर्ग लागू होता है। – Phrogz

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