Aufgabe zur Selbstentwicklung: HTML-Formular mit einer Liste zufÀlliger Zeichenfolgen und deren Auswahl

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).

Bild

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:

Bild

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!

Source: https://habr.com/ru/post/de463277/


All Articles