#034: Suchfunktion erstellen, Teil 1

Nachdem wir nun per Photoshop umrissen haben, was wir mit dem Suchbereich erreichen wollen, machen wir uns an die Erstellung mit HTML und CSS. Wir haben bereits unsere Icon-Schriftart geladen und fügen sie auf der Seite ein. Font Explorer X hilft uns dabei, das richtige HTML-Zeichen für die Lupe anzuzeigen.

Wir fügen die Markierung in unsere Header-Include-Datei ein und starten eine brandneue Sass-Datei (_search.scss), um den CSS-Code für diesen neuen Bereich zu schreiben. Wir stellen sicher, dass CodeKit von dieser neuen Datei weiß. Leider dauert es in diesen frühen Screencasts manchmal eine Weile, bis CodeKit aktualisiert wird, was ich später darauf zurückführe, dass ich ein bestimmtes Projekt mit einfach zu vielen Dateien darin habe. Sie können dies beheben, indem Sie einfach das Verzeichnis, das CodeKit beobachten soll, einschränken.

Wir positionieren den Suchbereich absolut im Header, sodass er rechts und oben im Hauptinhaltsbereich platziert wird. Wir passen Größe und Platzierung der Lupe an, indem wir speziell auf das Icon abzielen. Wir positionieren die Elemente mit Prozentangaben, damit sie sich gut in unser responsives Design einfügen. Wir fügen auch :hover- und :focus-Zustände hinzu, damit deutlich wird, dass man darauf klicken kann.

Wir schließen ab, indem wir etwas JavaScript schreiben, das den Suchbereich öffnet und schließt. Wir hätten die Animationen direkt im JavaScript haben können (da wir jQuery verwenden), aber stattdessen ändern wir nur Klassennamen im CSS. Das ist, was ich gerne als "zustandsbasierte CSS" bezeichne, bei der JavaScript lediglich Klassennamen steuert, die den Zustand der Seite (oder des Bereichs) deklarieren, und CSS bestimmt, wie die Seite in diesem Zustand aussieht (und wie sie dorthin gelangt). Das bedeutet, dass wir Dinge wie Übergänge in CSS machen, was meiner Meinung nach dort hingehört und langfristig weitaus besser ist (d. h. CSS-Übergänge sind hardwarebeschleunigt, während JavaScript-Übergänge es nicht sind, sondern nur schnelle Iterationen von Inline-Styles sind).