Gibt es eine Open Source- oder generische Implementierung von CSS, die auf eine beliebige Anzeigehierarchie angewendet werden kann? Ich versuche, eine für die Flash-Anzeigehierarchie in AS3 zu erstellen.Wie und wann werden CSS-Regeln auf eine Anzeigehierarchie angewendet?
Ich bin neugierig auf das Verfahren zum Anwenden von CSS-Stilen auf eine Display-Hierarchie. Es scheint mir, dass einige oder alle Selektoren jedes Mal erneut auf die gesamte Anzeigeliste angewendet werden müssten, wenn ein Anzeigeobjekt hinzugefügt, entfernt oder neu positioniert wird, sowie wenn Ereignisse auftreten, wie etwa Fokusänderungen, angesichts der Existenz von Selektoren wie "first-child" und Pseudo-Selektoren wie ": focus".
Würden bei der ersten Anwendung von Stilen die gesamte Anzeigeliste Element für Element durchsucht werden, Stile angewendet werden oder würden alle Objekte vorab sortiert und bestimmten Regelkategorien zugeordnet werden? Oder etwas ähnliches.
Ich bin wirklich auf der Suche nach einer guten allgemeinen Ressource für eine echte Implementierung.
Update: Ich bin wahrscheinlich auf der Suche nach etwas auf der Ebene this, aber ich weiß nicht, ob dies Stand der Technik ist: "Hierarchische Einschränkungen bieten eine einfache, vereinheitlichende Möglichkeit, einen Großteil der CSS 2.0-Spezifikation zu verstehen Diese Sichtweise legt auch nahe, dass Constraint - Solver eine natürliche Implementierungstechnik bieten.Jede Style - Eigenschaft und die Platzierung jedes Elements im Dokument kann durch eine Variable modelliert werden.Einschränkungen dieser Variablen ergeben sich aus Browserfähigkeiten, Standardlayoutverhalten, das sich aus dem Typ von ergibt das Element aus der Dokumentenbaumstruktur und aus der Anwendung von Stilregeln. Das endgültige Aussehen des Dokuments wird bestimmt, indem eine Lösung für diese Einschränkungen gefunden wird. " Das wirft die Frage auf, wie und wann die Beschränkungen zu lösen sind.
Flex verwendet CSS mit MXML, obwohl ich nicht sicher bin, ob seine CSS-Implementierung Open Source ist (es wahrscheinlich ist). – BoltClock
Ich werde das untersuchen. IBM hat eine nette Beschreibung zu CSS in Flex: http://www.ibm.com/developerworks/web/library/wa-cssflex/index.html Ich habe meinen eigenen XML-Display-Listen-Parser erstellt, auf den ich CSS-Unterstützung anwenden werde zu früh. Ein Punkt, an dem sich meine Implementierung unterscheidet, ist, dass Stile sowohl auf DisplayObjects als auch auf TextFields angewendet werden. Ich dachte daran, Funktionalität von normalen Selektoren wie "Tagname" und ".classname" zu erhalten, indem sie ausschließlich auf htmlText in TextFields arbeiten, während neue Selektoren wie "#instancename" und "$ instancetype" auf Objektnamen und Objekttypen angewendet würden. – Triynko
Ich habe bereits Unterstützung für intelligentes Attribut-Parsing implementiert (basierend auf bekannten Objekttyp- + Attributnamenpaaren, sowie auf Objekte für eine Implementierung einer IAttributeParser-Schnittstelle). Referenzauflösung in Attributen (z. B. andere Objekte in der Anzeigeliste) referenziert über "this.objectname", aufgeschobene Zuweisung von Referenzwerten und Textfeldtext, um sicherzustellen, dass Referenzen auflösbar sind und Text zuletzt zugewiesen wird, Datenbindung (2-Wege, 1-Weg, 1-Weg-zu-Quelle), Namespace-Importe , virtuelle Basisnamen für Referenzen, Tag-Aliase, Konstruktoren, die Parameter übernehmen usw. – Triynko