2013-02-22 35 views
7

मैं एक कस्टम सीएसएस पार्सर लिख रहा हूं और इसे अपने एप्लिकेशन (एचटीएमएल नहीं) में ग्राफिकल तत्वों की शैली के लिए उपयोग करना चाहता हूं। मैं यह सुनिश्चित करना चाहता हूं कि यह चयनकर्ताओं की प्राथमिकता के मामले में सामान्य सीएसएस व्यवहार के अनुरूप है, "कैस्केड", आदि ..क्या कोई सीएसएस सिंटैक्स परीक्षण सूट है?

क्या इस परियोजना के लिए मैं एक व्यापक सीएसएस परीक्षण सूट का उपयोग कर सकता हूं?

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

मैं अपने कार्यान्वयन की जांच के लिए एक सीएसएस परीक्षण सूट की तलाश में हूं, लेकिन मुझे केवल W3C test suite की तरह ही मिल सकता है, मुख्य रूप से दस्तावेज़ के दृश्य प्रस्तुतिकरण से संबंधित हैं। मैं ऐसा कुछ ढूंढ रहा हूं जो मशीन-पठनीय या अनुकूलित करने में आसान है, और लेआउट इंजन की बजाय सीएसएस इंजन का उपयोग करता है। (छद्म परीक्षण विनिर्देश) की तरह कुछ:

Stylesheet 
    blah.blub { color: red; } 
    .blub { color: blue; } 

+ Document 
    <blah class="blub" /> 

=> Expected result: 
    <blah class="blub" style="color: red" /> 

या

assert selector "#blub" matches element "moo#blub" 
assert selector "blah#blub" does not match element "moo#blub" 
... 

मैं भी, सीएसएस shorthands के व्यवहार (जैसे line बनाम line-color) परीक्षण करना चाहते हैं मामलों में मैं क्रियान्वित किया है उन्हें एचटीएमएल के समान। उदाहरण के लिए

line: 1px solid blue; 
line-color: red; 

परिणामस्वरूप "1 पीएक्स ठोस लाल" रेखा होती है। कोई विचार?

+2

+1 मुझे भी एक चाहिए। – SLaks

उत्तर

1

मुझे संदेह है कि एक सीएसएस चयनकर्ता परीक्षण सूट है जो केवल सीएसएस पर काम करता है। के बाद से सीएसएस एक साथी प्रौद्योगिकी होने के लिए विकसित की है (यह नहीं कह यह अन्यत्र इस्तेमाल नहीं किया जा सकता है, लेकिन यह आम नहीं है) परीक्षण स्वीट उस रिश्ते पर ध्यान केंद्रित करने और, such as this one आमतौर पर ब्राउज़र में चलाते हैं।

एक सामान्य प्रयोजन CSS चयनकर्ताओं के लिए टेस्ट स्वीट थोड़ा एक वाक्य रचना चेकर से अधिक होना होगा। जब तक कि शैलियों को किसी चीज़ पर लागू नहीं किया जाता है, तब तक आप यह देखने में सक्षम नहीं होंगे कि सीएसएस पार्सर सही काम करता है या नहीं?

लेकिन उपरोक्त सूट विभिन्न CSS3 चयनकर्ताओं (पुराने संस्करणों के साथ-साथ वे अभी भी CSS3 का हिस्सा हैं) के लिए कुछ 500 परीक्षण देता है और आप इसे कम से कम अपने कार्यान्वयन के लिए विनिर्देश के रूप में उपयोग करने में सक्षम होना चाहिए।

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

+0

प्रश्न विशेष रूप से HTML के अलावा किसी होस्ट भाषा के उपयोग का उल्लेख करता है। तो एक मेजबान भाषा मौजूद है (यानी ओपी अकेले सीएसएस के साथ काम नहीं कर रहा है), और यह एचटीएमएल नहीं है। – BoltClock

+0

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

+0

@jdm: यदि मैं गलत नहीं हूं तो यह अभी भी एक मेजबान भाषा के रूप में गिना जाता है - आपको * मार्कअप भाषा * प्रति से अधिक की आवश्यकता नहीं है, केवल डीओएम जैसी अवधारणाओं के साथ कुछ (जैसे आपने उल्लेख किया है) जो सीएसएस के साथ संगत हैं। – BoltClock

1

फ़ैंटॉमजेएस जैसे हेडलेस वेब ब्राउज़र का उपयोग करने और फिर जेएस लाइब्रेरी का उपयोग करने के बारे में कैसे एक सीएसएस इंजन, जैसे कि jQuery।

इस तरह आप अपने सीएसएस लिख सकते हैं, तो HTML लिखने और jQuery के .css() फ़ंक्शन का उपयोग करने वालों HTML तत्वों की शैलियों की जांच?

भी मेरा मानना ​​है कि PhantomJS एक पेज के स्क्रीनशॉट, यह एक अच्छा दृश्य मानसिक स्वास्थ्य की जांच हो सकता है ले जा सकते हैं।

+0

यह वास्तव में बहुत चालाक है, क्यों पहिया को फिर से शुरू करें! हालांकि मुझे लगता है कि मैं अभी भी अपने छोटे कस्टम सीएसएस इंजन के लिए जाऊंगा, क्योंकि मुझे परियोजना में कहीं और जेएस दुभाषिया/वेब ब्राउजर की आवश्यकता नहीं होगी, और कार्यक्रम पहले ही बहुत ही फुला हुआ है। – jdm