2014-04-28 6 views
12

क्या सीएसएस का ओपन सोर्स या जेनेरिक कार्यान्वयन है जिसे मनमाने ढंग से प्रदर्शित पदानुक्रम पर लागू किया जा सकता है? मैं एएस 3 में फ्लैश डिस्प्ले पदानुक्रम के लिए एक बनाने की कोशिश कर रहा हूं।प्रदर्शन पदानुक्रम पर सीएसएस नियम कब और कब लागू होते हैं?

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

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

मैं वास्तव में वास्तविक कार्यान्वयन पर एक अच्छा सामान्य संसाधन ढूंढ रहा हूं।

अपडेट: मैं शायद this के स्तर पर कुछ ढूंढ रहा हूं, लेकिन मुझे नहीं पता कि यह कला की स्थिति है या नहीं: "पदानुक्रमित बाधाएं सीएसएस 2.0 विनिर्देशों को समझने का एक सरल, एकीकृत तरीका प्रदान करती हैं यह दृष्टिकोण भी सुझाव देता है कि बाधा समाधान एक प्राकृतिक कार्यान्वयन तकनीक प्रदान करते हैं। प्रत्येक शैली की संपत्ति और दस्तावेज़ में प्रत्येक तत्व की नियुक्ति को एक चर द्वारा मॉडलिंग किया जा सकता है। इन चरों पर बाधाएं ब्राउज़र क्षमताओं से उत्पन्न होती हैं, प्रकार से उत्पन्न होने वाले डिफ़ॉल्ट लेआउट व्यवहार तत्व, दस्तावेज़ वृक्ष संरचना से, और शैली के नियमों के आवेदन से। दस्तावेज़ की अंतिम उपस्थिति इन बाधाओं का समाधान ढूंढकर निर्धारित की जाती है। " जो बाधाओं को हल करने के तरीके के बारे में सवाल पूछता है।

+0

फ्लेक्स, MXML के साथ सीएसएस का उपयोग करता है, हालांकि मुझे यकीन है कि नहीं कर रहा हूँ अपने सीएसएस कार्यान्वयन खुला स्रोत है अगर (यह शायद है)। – BoltClock

+0

मैं उसमें देख लूंगा। आईबीएम के पास फ्लेक्स में सीएसएस पर एक अच्छा लेखन है: http://www.ibm.com/developerworks/web/library/wa-cssflex/index.html मैंने अपना खुद का एक्सएमएल डिस्प्ले सूची पार्सर बनाया है, जिसे मैं सीएसएस समर्थन लागू करूँगा जल्द ही। एक जगह जहां मेरा कार्यान्वयन अलग-अलग होगा, शैलियों को समान रूप से DisplayObjects और TextFields दोनों पर लागू किया जाएगा। मैं सामान्य चयनकर्ताओं की कार्यक्षमता को संरक्षित करने के बारे में सोच रहा था जैसे "टैगनाम" और ".classname" उन्हें टेक्स्टफिल्ड्स में HTMLText पर विशेष रूप से संचालित करते हुए, जबकि "#instancename" और "$ instancetype" जैसे नए चयनकर्ता ऑब्जेक्ट नामों और ऑब्जेक्ट प्रकारों पर लागू होंगे। – Triynko

+0

मैंने पहले से ही बुद्धिमान विशेषता पार्सिंग (ज्ञात ऑब्जेक्ट प्रकार + विशेषता नाम जोड़े के आधार पर, साथ ही साथ IAttributeParser इंटरफ़ेस के कार्यान्वयन के लिए ऑब्जेक्ट्स की जांच के लिए) लागू किया है, विशेषताओं में हल करने के संदर्भ (उदाहरण के लिए डिस्प्ले सूची में अन्य ऑब्जेक्ट्स हो सकते हैं संदर्भों को सुनिश्चित करने के लिए "this.objectname" के संदर्भ में, संदर्भ मानों और टेक्स्टफील्ड टेक्स्ट के स्थगित असाइनमेंट को हल करने योग्य हैं और पाठ को अंतिम रूप दिया गया है, डेटा-बाइंडिंग (2-तरफा, 1-तरफा, 1-मार्ग-से-स्रोत), नामस्थान आयात , संदर्भों के लिए वर्चुअल बेस नाम, टैग उपनाम, पैरामीटर लेते हैं, और अधिक। – Triynko

उत्तर

1

@Triynko, How Browsers Work HTML5 Rocks में के बारे में:

अरे ...

WebCore बस एक वैश्विक स्विच जब किसी भी भाई चयनकर्ता का सामना करना पड़ा है फेंकता है और पूरे दस्तावेज जब के लिए शैली साझेदारी को निष्क्रिय वे मौजूद हैं इसमें + चयनकर्ता और चयनकर्ता शामिल हैं: पहला बच्चा और: अंतिम-बच्चा।

यह एक फ्लाई को मारने के लिए स्लेजघैमर को संभालने का एक तरीका है, मुझे याद होगा कि उन चयनकर्ताओं का उपयोग न करें, कभी भी, lol।

बहुत उपयोगी:

शैली पत्रक को पार्स करने के बाद, नियम चयनकर्ता के अनुसार कई हैश नक्शे से एक के लिए जोड़ रहे हैं,। आईडी नाम, कक्षा के नाम से, टैग नाम और सामान्य मानचित्र द्वारा मानचित्र हैं ... यदि चयनकर्ता एक आईडी है, तो नियम आईडी मानचित्र में जोड़ा जाएगा, यदि यह कक्षा है तो इसे कक्षा मानचित्र आदि में जोड़ा जाएगा। यह हेरफेर नियमों से मेल खाना आसान बनाता है। प्रत्येक घोषणा में देखने की कोई आवश्यकता नहीं है: हम नक्शे से तत्व के लिए प्रासंगिक नियम निकाल सकते हैं। यह अनुकूलन नियमों के 95 +% को समाप्त करता है, ताकि मिलान प्रक्रिया (4.1) के दौरान उन्हें भी विचार न किया जाए।

और @BoltClock:

सामान्य, जटिल चयनकर्ताओं में सही (बेशक इन अनुकूलन करने के लिए माध्यमिक) से बाईं ओर मिलान किया जाता है, सरल चयनकर्ताओं में से प्रत्येक के अनुक्रम का मूल्यांकन करने और प्रत्येक के माध्यम से कदम में Combinator ऐसा करने से।

संदर्भ

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