Spiele mit CSS, Kontrollkästchen und Optionsknopftechniken erstellen sind berüchtigte (oder allgemein bekannt). Es stellt sich jedoch heraus, dass auch andere Elemente, die auf Benutzereingaben basieren, geschickt genutzt und zur Gamification verwendet werden können. Entwickler haben viele sehr coole CSS-Spielfälle erstellt, die auf der :hover
-Pseudo-Kategorie und sogar Spiele basieren, die auf der :valid
-Kategorie basieren.
stellte ich jedoch fest, dass die :target
Pseudoklasse in diesem Bereich der CSS-Fähigkeiten unterbelastet zu sein scheinen. Nachdem Sie darüber nachgedacht haben, handelt es sich um eine unterschätzte leistungsstarke CSS-Funktion: : Ziel ermöglicht es uns, jedes Element auf der Grundlage des ausgewählten Sprunglinks zu stylen, was bedeutet, dass der Browser eine einfache Version des Client-Routings hat! Lassen Sie uns verrückte Wissenschaftler werden und sehen, wohin es uns führen kann.
Habe ich diese Wörter miteinander verbunden? Sollten wir CSS verzweifelt verwenden, bis wir die Singularität erreichen? Versuchen Sie, das TIC -Zehenspiel im Style Sheet unten zu besiegen und selbst zu entscheiden.
Stylesheets lassen das Spiel manchmal in einer Krawatte enden, sodass Sie zumindest einen Silberstreifen haben.
Mach dir keine Sorgen! CSS ist noch kein Skynet geworden. Wie bei jedem CSS -Trick ist die Faustregel, um festzustellen, ob ein Spiel mit CSS implementiert werden kann, in der Anzahl der Spielstaaten möglich. Ich erkannte dies, als ich einen 4 × 4 -Sudoku -Solver erstellen konnte, und stellte fest, dass die 9 × 9 -Version fast unmöglich zu implementieren war. Dies liegt daran, dass CSS -Tricks letztendlich von Selektoren abhängen, die auf Benutzereingaben reagieren, um das Spielstatus auszublenden und anzuzeigen.
Wenn X zuerst geht, hat Tic Toe 5478 Rechtszustände, die erreicht werden können, und es gibt einen bekannten Algorithmus, der die beste Bewegung in jedem Rechtszustand berechnen kann. Daher können wir CSS voll verwenden, um Tic -Toe -Spiele zu implementieren.Okay, wie geht es mir?
Wir verwenden eine Variante des in Ruby implementierten Minimax -Algorithmus, um ihn zu erzeugen. Wussten Sie, dass CodePen HAML unterstützt (Rubinblöcke), und können wir ihn heimlich als Ruby -Spielplatz verwenden? Jetzt weißt du.
Jeder von unserem Haml erzeugte Zustand sieht in HTML so aus:
<div> <svg><circle></circle></svg><a href="//m.sbmmt.com/link/320bc51fecc423dd893a420b42b9719a"> <div></div> </a> <svg><circle></circle></svg><svg><circle></circle></svg><div></div> <a href="//m.sbmmt.com/link/7259202cea475e0e98aa076037cc3f15"> <div></div> </a> <a href="//m.sbmmt.com/link/f514659f5c754f0cec51ea59a5e826ae"> <div></div> </a> <a href="//m.sbmmt.com/link/a23eabd0e013e2ef19cc27099204ea18"> <div></div> </a> <a href="//m.sbmmt.com/link/7a50f770e0e910d3beffd653f7c4197e"> <div></div> </a> </div>
-Auskurs verwenden, um nur den aktuell ausgewählten Spielstatus anzuzeigen. Wir werden den historischen Bewegungen des Computers auch eine :target
-Klasse hinzufügen, damit wir nur Handschriftanimationen in den neuesten Schritten des Computers auslösen. Dadurch haben wir das Gefühl, dass wir Spiele auf einem Brett spielen, und in Wirklichkeit springen wir zwischen verschiedenen Teilen des Dokuments. .c
<div> <svg><circle></circle></svg><a href="//m.sbmmt.com/link/320bc51fecc423dd893a420b42b9719a"> <div></div> </a> <svg><circle></circle></svg><svg><circle></circle></svg><div></div> <a href="//m.sbmmt.com/link/7259202cea475e0e98aa076037cc3f15"> <div></div> </a> <a href="//m.sbmmt.com/link/f514659f5c754f0cec51ea59a5e826ae"> <div></div> </a> <a href="//m.sbmmt.com/link/a23eabd0e013e2ef19cc27099204ea18"> <div></div> </a> <a href="//m.sbmmt.com/link/7a50f770e0e910d3beffd653f7c4197e"> <div></div> </a> </div>
Bei der Auswahl des Sprunglinks durch Klicken auf das leere Quadrat zeigt die :target
Pseudo-Klasse den aktualisierten Spielstatus an (.s
), und die vorbereitete Antwort auf den Computer wird in animierter Weise angezeigt (.c
).
Bitte beachten Sie die besondere Situation, wenn wir das Spiel starten: Bevor der Benutzer einen Jump -Link auswählt, müssen wir das anfängliche leere Netz anzeigen. Der Inhalt des Stils ist zu Beginn nicht festgelegt. Sobald der Sprungverbindungslink ausgewählt ist, verwenden wir den :target
-Auskörper, um den Ausgangszustand zu verbergen. Wenn Sie ein Experiment mit :body:has(:target) #---------
erstellen, müssen Sie die erste Ansicht rendern, bevor der Benutzer mit der Interaktion mit der Seite beginnt. :target
Gibt es etwas Interessantes zu verwenden
? Ich denke ja, weil: :target
:target
Das obige ist der detaillierte Inhalt vonZeitreikende CSS mit: Ziel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!