Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Diskussion über CSS-Framework

黄舟
Freigeben: 2016-12-15 13:46:31
Original
1051 Leute haben es durchsucht

Ich habe in letzter Zeit viele Einführungen in CSS-Frameworks gesehen. Vor ein paar Tagen habe ich etwas gesagt: „In meinem begrenzten Sichtfeld habe ich nichts gesehen, was man wirklich als CSS-Framework bezeichnen könnte.“ Natürlich ist es möglich. Das liegt daran, dass mein Sichtfeld zu klein ist oder die Welt zu groß ist. Ich habe immer noch das Gefühl, dass es viele Dinge gibt, die ich nicht sehen kann.


Schauen wir uns zunächst ein Konzept an, mit dem ich eher einverstanden bin:

Das Framework kann in zwei Frameworks unterteilt werden: White-Box (White-Box) und Black-Box (Black). -Kasten).

Frameworks, die auf Vererbung basieren, werden White-Box-Frameworks genannt. Die sogenannte White Box ist sichtbar und die internen Implementierungsdetails der geerbten übergeordneten Klasse sind der Unterklasse bekannt. Anwendungsentwickler, die White-Box-Frameworks verwenden, entwickeln Systeme, indem sie Unterklassen ableiten oder Mitgliedsmethoden von übergeordneten Klassen überschreiben. Die Implementierung einer Unterklasse hängt stark von der Implementierung der übergeordneten Klasse ab, und diese Abhängigkeit schränkt die Flexibilität und Vollständigkeit der Wiederverwendung ein. Die Lösung dieser Einschränkung kann jedoch darin bestehen, nur die abstrakte übergeordnete Klasse zu erben, da abstrakte Klassen grundsätzlich keine konkrete Implementierung bereitstellen. Das White-Box-Framework ist ein Programmgerüst, und vom Benutzer abgeleitete Unterklassen sind Zubehör für dieses Gerüst.

Das auf der Objektkomponentenassemblierung basierende Framework ist ein Black-Box-Framework. Anwendungsentwickler erhalten eine Systemimplementierung durch Sortieren und Zusammenstellen von Objekten. Benutzer müssen nur die externe Schnittstelle der Komponente verstehen und müssen nicht die spezifische interne Implementierung verstehen. Darüber hinaus ist Assembly flexibler als Vererbung und kann dynamisch geändert werden. Vererbung ist nur ein statisches Konzept zur Kompilierungszeit.

Im Idealfall kann jede erforderliche Funktionalität durch Assemblierung bestehender Komponenten erhalten werden. Tatsächlich sind die verfügbaren Komponenten bei weitem nicht den Anforderungen gewachsen. Manchmal ist es besser, neue Komponenten durch Vererbung zu erhalten, als vorhandene Komponenten zu verwenden Da es einfacher ist, neue Bausteine ​​zusammenzusetzen, werden bei der Entwicklung des Systems sowohl White Boxes als auch Black Boxes verwendet. Allerdings entwickeln sich White-Box-Frameworks tendenziell zu Black-Box-Frameworks, und Black-Box-Frameworks sind auch die idealen Ziele, die die Systementwicklung erreichen möchte.

Werfen wir einen Blick zurück auf die vielen CSS-Frameworks im Internet (YUI heißt „YUI Library CSS Tools“, nicht „YUI CSS Frameworks“). Wie viele davon sind tatsächlich mit dem Konzept eines Frameworks geschrieben? , und wie viele sind nur Definitionen der Style-Basisklasse. Natürlich ist das Verständnis des Frameworks möglicherweise nicht für alle gleich und Sie stimmen möglicherweise nicht mit dem überein, was ich sage.

Lassen Sie uns noch einmal über das CSS-Framework sprechen. Es ist nicht so, dass ich die Existenz dieses Dings nicht schon seit ein oder zwei Jahren probiere. Für große Websites erfordert die Frontend-Entwicklung eine Lösung. Das Framework ist natürlich die erste Wahl. Schade, dass es zu weit von mir entfernt ist, ich bin zu schwach T_T, ich brauche nur zwei Punkte:

Dinge, um den Inhalt unten zu verwalten
Klasse/Komponente
Offensichtlich der erste Punkt ist, dass CSS das nicht kann. Der zweite Punkt ist, dass es im Vergleich zu anderen Sprachen sehr schwach ist.

Als ich vor etwa einem Jahr an einer mittelgroßen Website arbeitete, dachte ich, um faul zu sein, daran, den Inhalt zu modularisieren und Programmierer die Seiten zusammenstellen zu lassen. Die allgemeine Richtung besteht darin, Funktionsblöcke nacheinander zu kapseln, wenn sie den Inhalt der Seite verwenden möchten Ich muss den Code nicht wiederholen. Hallo zusammen.

Auf derselben Website ist es normal, dass ähnliche Inhaltsblöcke mehrfach verwendet werden, z. B. eine Bilderliste, eine Liste von Benutzeravataren oder eine Gruppensymbolliste Würdest du es zu diesem Zeitpunkt schreiben? Wird das Gleiche so verwendet?

 .photoListUesr,.photoListGroup{ /*_*/ }

  Das bedeutet nicht, dass es nicht möglich ist, aber was ist, wenn Sie plötzlich etwas Ähnliches hinzufügen möchten? Möglicherweise müssen Sie den Stil zu diesem Zeitpunkt anpassen. Und was ist mit mir? Wir haben versucht, es auf diese Weise zu verwenden:


In diesem Fall trennen wir die allgemeinen Ausdrücke von Anfang an, verwenden .photoList als Prototyp und verarbeiten die Details durch zusätzliche Klassen. Vor ein paar Tagen habe ich über objektorientierte XHTML- und CSS-Programmierung geschrieben. Tatsächlich habe ich nur die Hälfte davon geschrieben, aber ich habe es nicht zu Ende geschrieben, weil ich zu viele Beispiele schreiben musste Der Kern wurde bereits geschrieben. ^^ Dies hat natürlich auch bestimmte Probleme, das heißt, die Definition des ursprünglichen Prototyps muss sehr sorgfältig sein und sicherstellen, dass dies möglicherweise nicht der Fall ist, wenn er in Zukunft überarbeitet wird geändert. Mit CSS passt ein Framework grundsätzlich höchstens auf eine Website. Wenn die Website groß genug ist, ist es natürlich sinnvoll, sie auf diese Weise zu verwenden.


Je modularer HTML und CSS sind, desto verteilter sind die Dateien und desto schwerwiegender wird dieses Problem. HTML ist einfach zu handhaben, da die Anwendung schließlich eine Kopie zusammenführt und ausgibt, CSS wird jedoch normalerweise verworfen und direkt verwendet. Im aktuellen Beispiel sieht der Weg zum Importieren von CSS in die Webseite wie folgt aus:

 @import url(/xxx/photoList.css);
 @import url(/xxx/UserCt. css);
  @import url(/xxx/GroupCt.css);

Dann können Sie sogar in Betracht ziehen, ein Programm zum Kombinieren von Seiten zu verwenden, aber es ist einfach zu verwenden und proportional zur Anzahl der Anfragen. Im Allgemeinen wird sich jeder dafür entscheiden, Dateien manuell zusammenzuführen. Obwohl das menschliche Gehirn intelligenter ist als ein Computer, ist die Rechenleistung des menschlichen Gehirns in vielen Fällen nicht so gut wie die eines Computers. Ich hatte einmal die Idee, ein serverseitiges Programm zu verwenden, um den CSS-Freigabemechanismus zu verwalten. Die allgemeine Richtung besteht darin, die Nutzung verschiedener Seiten der gesamten Website anhand von Website-Zugriffsprotokollen zu analysieren und das Programm zu verwenden, um zu berechnen, welche öffentlichen Nutzungen Die Reihenfolge muss zusammengeführt werden (die Reihenfolge der CSS-Dateien beeinflusst die Priorität) usw. Verschiedene Berechnungen und komprimierte Ausgaben.

Leider ist ein derart komplexes Programm möglicherweise nur für eine Site oder eine Gruppe von Sites derselben Serie geeignet. Obwohl dies etwas mühsam ist, halte ich es für notwendig, diese Methode für Websites auf Portalebene zu verwenden. Voraussetzung ist natürlich, dass das gesamte Team dasselbe Designmuster verwenden muss.

PS: Das obige CSS-Publishing-Programm ist nur meine Fantasie. Ich habe es noch nicht ausprobiert. Wenn es zu Unfällen kommt, übernehmen wir keine Verantwortung.

Natürlich kann das oben Genannte nicht als CSS-Framework bezeichnet werden, vielleicht kann es nur als Lösung auf Systemebene bezeichnet werden. Schließlich ist CSS nur eine beschreibende Sprache.

Als ich gestern Abend mit Yueying gebratene Ente aß, sprachen wir darüber und er fragte mich, ob ich eine integrierte Front-End-Lösung hätte. Das gleiche Problem tritt auf, wenn JS in Komponenten unterteilt wird, und ähnliche Veröffentlichungsmechanismen sollten auch auf JS anwendbar sein. Aber ich habe noch keine vollständig integrierte Lösung gefunden. Vielleicht lädt Yueying mich noch ein paar Mal mit gebratener Ente ein, und ich kann es herausfinden.

Das Obige ist die Diskussion über das CSS-Framework. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!