Ich mache die Bewohner von Chabrowsk und die GĂ€ste von Habr auf eine Aufgabe zur Selbstentwicklung im Frontend der Entwicklung aufmerksam. Die Aufgabe richtet sich an Interpreten, die beginnen, die Frontend-Programmierung zu verstehen und sich mit den grundlegenden Programmiermechanismen in einem Browser vertraut zu machen. Erforderliche Technologien: HTML, CSS, JavaScript (Vanilla).

Die Aufgabe wurde speziell entwickelt, um die Basistechnologien mit minimalem Anschluss zusÀtzlicher Tools so gut wie möglich zu verstehen. GrundsÀtzlich sind nur ein Browser und ein Code-Editor erforderlich. Keine vorlÀufigen Manipulationen, ohne dass eine Verarbeitung auf der Backend-Seite erforderlich ist. Wer möchte sich mit der Produktion vertraut machen - Willkommen bei der Katze!
Empfehlungen fĂŒr das Aussehen
Erstellen Sie ein Formular, das aus einer Liste von Zeilen und einem Filterfeld besteht. Formular Beispiel:

Merkmale des Formulars aus dem Beispiel:
âą Das Formular ist ein
Block mit fester Breite in der Mitte des Fensters .
âą Die Filterplatte hat eine
feste Höhe . Die RÀnder der Platte sind
horizontal in einer oder zwei Linien angeordnet.
âą Die Liste der Zeilen wird
auf die gesamte verbleibende Fensterhöhe ausgedehnt. Wenn die Anzahl der Zeilen gröĂer als die Höhe der zugewiesenen Liste ist, wird
in der Liste selbst eine Bildlaufleiste angezeigt (das Erscheinen einer globalen Bildlaufleiste im Browserfenster wird vermieden).
Funktionale Anforderungen
Die Listenzeilen und deren Inhalt werden beim Ăffnen der Seite generiert (eine Zufallszahl von mehr als 200). Das Markup und der Inhalt jeder Zeile sollten zufĂ€llig aus den Eigenschaften gesammelt werden, die zuvor in den konstanten Sammlungen im Quellcode aufgefĂŒhrt waren. Die Sammlungen entsprechen den erweiterten Auswahlfiltern mit den Nummern 1, 2, 3, 4 (nachstehend ausfĂŒhrlicher beschrieben, werden die Werte der Elemente und ihre Nummer in der Sammlung vom AusfĂŒhrenden festgelegt). Eine zufĂ€llige Auswahl von Sammlungselementen zum Zusammenstellen von Zeichenfolgen basiert auf der Erzeugung von Zufallszahlen (zufĂ€llig).
Geben Sie in jeder Zeile der Liste eine eindeutige Kennung und zwei Tags an:
1. Der Wert des Bezeichners wird in das Bezeichnerattribut geschrieben und am Anfang des Inhalts der Zeichenfolge angezeigt (kann in ein separates Tag eingeschlossen werden).
2. Das erste Tag besteht darin, zufĂ€llig aus den vom Filter bereitgestellten auszuwĂ€hlen, z. B. label, span, div, p oder dergleichen, mit einer zufĂ€lligen, visuell unterscheidbaren Klasse (z. B. nach Hintergrundfarbe, Schriftart oder dergleichen sollten die Klassen in CSS vordefiniert und in der Konstantensammlung aufgefĂŒhrt sein fĂŒr den entsprechenden Filter) im Inhalt den Namen des Tags und seiner Klasse anzeigen; Eine zufĂ€llige Substitution mehrerer verschiedener Klassen gleichzeitig in verschiedenen Zahlen, nicht weniger als 1, wird begrĂŒĂt.
3. Das zweite Tag wird mit einem zufĂ€lligen Typ (Typattribut), einem zufĂ€lligen Wert (doppelter Wert im Titel), zufĂ€lligem Vorhandensein / Fehlen einer Blockmarke, zufĂ€lligem Vorhandensein / Fehlen einer schreibgeschĂŒtzten Marke eingegeben.
Stellen Sie auf dem Filterfeld sicher, dass der Modus zwischen
Auswahl nach Kennung und
erweiterter Auswahl umgeschaltet wird . Nach Auswahl der Werte im Filterformular sollten nur geeignete EintrÀge in der Liste verbleiben:
im
Auswahlmodus nach Kennung - eine Zeile mit der ĂŒbereinstimmenden Kennung;
im
erweiterten Auswahlmodus - Zeilen, von denen jede unmittelbar allen ausgewĂ€hlten Optionen entspricht: das erste Tag, die Klasse des ersten Tags, der Typ des Eingabe-Tags, der Wert des Eingabe-Tags, das Vorzeichen des zu blockierenden Eingabe-Tags und das schreibgeschĂŒtzte Zugriffstag.
Wenn die Filterfelder erneut geĂ€ndert werden, sollte die Liste EintrĂ€ge aus der ursprĂŒnglichen Liste anzeigen, die fĂŒr die neu ausgewĂ€hlte Filterkonfiguration geeignet sind (die Filterung der ursprĂŒnglichen Liste sollte erneut erfolgen, die ursprĂŒnglichen DatensĂ€tze sollten nicht verloren gehen).
Im
Auswahlmodus nach Kennung sollte das Filterfeld ein Auswahlfeld nach Kennung (Eingabefeld) haben.
Im
erweiterten Auswahlmodus sollten sich die folgenden Filter im Filterfeld befinden:
1. durch das erste Tag (Auswahl aus der Sammlung);
2. nach der Klasse des ersten Tags (Auswahl aus der Sammlung);
3. nach Art des Eingabe-Tags (Auswahl aus der Sammlung);
4. durch den Wert des Eingabe-Tags (Auswahl aus der Sammlung);
5. durch Blockieren des Eingabe-Tags (Auswahl der Werte Ja / Nein);
6. nach VerfĂŒgbarkeit nur zum Lesen des Eingabe-Tags (Auswahl der Werte Ja / Nein).
Optional
* Es wird empfohlen, dass der Filter
sofort auf Ănderungen reagiert , ohne dass ein separater Klick auf die SuchschaltflĂ€che erforderlich ist.
* Es ist ratsam, alles sorgfÀltig zu machen, mit CSS-Eigenschaften umzugehen und sicherzustellen, dass das
Layout der einzelnen Zeilen der Liste nicht aufgrund von Unterschieden in den darin enthaltenen Tags geÀndert wird.
** Implementieren Sie die Auswahl aller erforderlichen Elemente mit
einem Selektor - wĂ€hlen Sie sofort den gewĂŒnschten Inhalt der Zeilen aus und ĂŒberprĂŒfen Sie nicht jede Zeile auf das Vorhandensein der in den Filtern ausgewĂ€hlten Optionen.
*** Versuchen Sie,
mehrere Werte fĂŒr Filter nach dem ersten Tag, nach der Klasse des ersten Tags, nach dem Typ des Eingabe-Tags und nach dem Wert des Eingabe-Tags auszuwĂ€hlen. Der Filter nach dem ersten Tag, dem Typ des Eingabe-Tags oder dem Wert des Eingabe-Tags sollte Zeichenfolgen mit einem der darin ausgewĂ€hlten Werte auswĂ€hlen (in jedem Filter einzeln; die allgemeinen Anforderungen des erweiterten Modus fĂŒr die gleichzeitige Zuordnung von Zeichenfolgen zu allen Filtern bleiben erhalten).
Ich hoffe, der Leser wird feststellen, dass die beschriebene Aufgabe fĂŒr die Selbstentwicklung nĂŒtzlich ist oder fĂŒr eine Empfehlung an jemanden geeignet erscheint.
Ich wĂŒnsche Ihnen allen viel Erfolg in Ihrer beruflichen Laufbahn!