Ten projekt pomoże Ci doskonalić umiejętności front-endowe i nauczy Cię, jak zbudować interfejs przy użyciu podstawowych standardów sieciowych.

Projekty to świetny sposób na doskonalenie umiejętności posługiwania się HTML, CSS i JavaScript oraz utrwalanie ważnych pojęć i technik.

Jednym z projektów, od których możesz zacząć, jest książka kucharska, którą możesz uruchomić w przeglądarce, takiej jak Google Chrome lub Firefox.

W książce kucharskiej po lewej stronie strony znajduje się sekcja, w której użytkownik może dodawać nowe przepisy. Po prawej stronie użytkownik może przeglądać i przeszukiwać istniejące przepisy.

Jak poprosić użytkownika o dodanie nowego przepisu

Dodaj początkową zawartość do plików HTML, CSS i JavaScript. Jeśli nie jesteś zaznajomiony z koncepcjami tworzenia stron internetowych, jest wiele miejsc, w których możesz to zrobić uczyć się tworzenia stron internetowych online.

Możesz także zobaczyć pełny przykład książki kucharskiej w tym Repozytorium GitHub.

  1. Dodaj podstawową strukturę HTML w nowym pliku HTML o nazwie index.html:
    instagram viewer
    HTML>
    <HTML>
    <głowa>
    <tytuł>Aplikacja Przepistytuł>
    głowa>
    <ciało>
    <nawigacja>
    <h1>Aplikacja Przepish1>
    nawigacja>
    <dzklasa="pojemnik">
    Treść tutaj
    dz>
    ciało>
    HTML>
  2. Wewnątrz klasy kontenera podziel stronę na lewą i prawą kolumnę:
    <dzklasa="lewa kolumna">

    dz>
    <dzklasa="prawa kolumna">

    dz>

  3. W lewej kolumnie dodaj formularz, w którym użytkownik może dodać nowy przepis. Użytkownik może wprowadzić nazwę przepisu, listę składników i metodę:
    <h3>Dodaj przepish3>

    <formularz>
    <etykietaDo=„nazwa-przepisu”>Nazwa:etykieta>
    <wejścietyp="tekst"ID=„nazwa-przepisu”wymagany>
    <br />

    <etykietaDo=„składniki receptury”>Składniki:etykieta>
    <pole tekstoweID=„składniki receptury”wydziwianie="5"wymagany>pole tekstowe>
    <br />

    <etykietaDo=„metoda przepisu”>Metoda:etykieta>
    <pole tekstoweID=„metoda przepisu”wydziwianie="5"wymagany>pole tekstowe>
    <br />

    <przycisktyp="składać">Dodaj przepisprzycisk>
    formularz>

  4. W tagu head pliku HTML dodaj link do nowego pliku CSS o nazwie styles.css. Utwórz plik w tym samym folderze co plik HTML:
    <połączyćrel=„arkusz stylów”href="style.css">
  5. W pliku CSS dodaj trochę stylu dla całej strony:
    ciało {
    rodzina czcionek: bezszeryfowe;
    }

    nawigacja {
    kolor tła: #333;
    pozycja: naprawił;
    szczyt: 0;
    szerokość: 100%;
    wyściółka: 20piks;
    lewy: 0;
    kolor: biały;
    wyrównanie tekstu: Centrum;
    }

    .pojemnik {
    wyświetlacz: przewód;
    kierunek zginania: wiersz;
    uzasadnij treść: przestrzeń pomiędzy;
    margines: 150piks 5%;
    }

    .lewa kolumna {
    szerokość: 25%;
    }

    .prawa kolumna {
    szerokość: 65%;
    }

  6. Dodaj trochę stylizacji do Dodaj przepisy formularz:
    formularz {
    wyświetlacz: przewód;
    kierunek zginania: kolumna;
    }

    etykieta {
    margines-dolny: 10piks;
    }

    wejście[typ="tekst"], pole tekstowe {
    wyściółka: 10piks;
    margines-dolny: 10piks;
    promień granicy: 5piks;
    granica: 1pikssolidny#ccc;
    szerokość: 100%;
    rozmiar pudełka: ramka;
    }

    przycisk[typ="składać"] {
    wyściółka: 10piks;
    kolor tła: #3338;
    kolor: #ffff;
    granica: nic;
    promień granicy: 5piks;
    kursor: wskaźnik;
    }

  7. U dołu tagu body w pliku HTML dodaj link do pliku JavaScript o nazwie script.js. Utwórz plik w tym samym folderze:
    <ciało>
    Treść
    <scenariuszźródło=„skrypt.js”>scenariusz>
    ciało>
  8. W pliku script.js użyj metody querySelector, aby przejść przez DOM i pobierz element formularza ze strony.
    konst formularz = dokument.querySelector('formularz');
  9. Utwórz nową tablicę do przechowywania przepisów, które użytkownik wprowadza w formularzu:
    pozwalać przepisy = [];
  10. W nowej funkcji uzyskaj pola nazwy, składników i metody wprowadzone za pośrednictwem formularza. Możesz też wdrożyć walidacja formularza po stronie klienta aby zapobiec wprowadzaniu nieprawidłowych danych wejściowych lub sprawdzić, czy receptura już istnieje.
    funkcjonowaćuchwytPrześlij(wydarzenie) {
    // Zapobieganie domyślnemu zachowaniu przesyłania formularza
    zdarzenie.preventDefault();

    // Pobierz nazwę receptury, składniki i wartości wejściowe metody
    konst nazwaWejście = dokument.querySelector('#nazwa-przepisu');
    konst wejścieIngr = dokument.querySelector(„#składniki-przepisu”);
    konst metodaInput = dokument.querySelector('#metoda-przepisu');
    konst nazwa = nazwaInput.value.trim();
    konst składniki = składnikInput.value.trim().split(',').mapa(I => i.przytnij());
    konst metoda = metodaInput.value.trim();
    }
  11. Jeśli dane wejściowe są prawidłowe, dodaj je do tablicy receptur:
    Jeśli (nazwa && składniki.długość > 0 && metoda) {
    konst nowy przepis = { nazwa, składniki, metoda };
    przepisy.push (nowy przepis);
    }
  12. Wyczyść dane wejściowe w formularzu:
    nazwaWejście.wartość = '';
    ingrInput.value = '';
    metodaInput.wartość = '';
  13. Po funkcji handleSubmit() dodaj słuchacz zdarzeń wywołać funkcję, gdy użytkownik przesyła formularz:
    form.addEventListener('składać', uchwytWyślij);
  14. Otwórz plik index.html w przeglądarce i przejrzyj formularz po lewej stronie:

Jak wyświetlić dodane przepisy

Możesz wyświetlić przepisy zapisane w tablicy receptur po prawej stronie strony.

  1. W pliku HTML dodaj element div, aby wyświetlić listę przepisów w prawej kolumnie. Dodaj kolejny div, aby wyświetlić komunikat, jeśli nie ma przepisów:
    <dzklasa="prawa kolumna">
    <dzID=„lista przepisów”>dz>
    <dzID=„bez przepisów”>Nie masz żadnych przepisów.dz>
    dz>
  2. Dodaj styl CSS do listy przepisów:
    #lista-przepisów {
    wyświetlacz: siatka;
    kolumny szablonu siatki: powtarzać(automatyczne dopasowanie, minimum maksimum(300piks, 1fr));
    przerwa w siatce: 20piks;
    }

    #bez-przepisów {
    wyświetlacz: przewód;
    kolor tła: #FFCCCC;
    wyściółka: 20piks;
    promień granicy: 8piks;
    górny margines: 44piks;
    }

  3. U góry pliku JavaScript pobierz elementy HTML używane do wyświetlania listy przepisów i komunikatu o błędzie:
    konst lista przepisów = dokument.querySelector('#lista-przepisów');
    konst brakPrzepisy = dokument.getElementById(„bez przepisów”);
  4. Wewnątrz nowej funkcji przejrzyj każdą recepturę w tablicy receptur. Dla każdego przepisu utwórz nowy div, aby wyświetlić ten przepis:
    funkcjonowaćpokażPrzepisy() {
    lista przepisów.innerHTML = '';
    przepisy.forEach((przepis, indeks) => {
    konst PrzepisDiv = dokument.utwórzElement(„dział”);
    });
    }
  5. Dodaj trochę treści do div indywidualnego przepisu, aby wyświetlić nazwę, składniki i metodę. Div będzie również zawierał przycisk usuwania. Dodasz tę funkcję w późniejszych krokach:
    PrzepisDiv.innerHTML = `

    ${nazwa.przepisu}</h3>

    <mocny>Składniki:mocny></p>


      ${przepis.składniki.map(ingr =>`
    • ${ingr}
    • `
      ).dołączyć('')}
      </ul>

      <mocny>Metoda:mocny></p>

      ${przepis.metoda}</p>

  6. Dodaj klasę, aby stylizować div:
    przepisDiv.classList.add('przepis');
  7. Dołącz nowy element div do elementu HTML „recipeList”:
    lista_przepisów.appendDziecko (przepisDiv);
  8. Dodaj stylizację dla klasy w pliku CSS:
    .przepis {
    granica: 1pikssolidny#ccc;
    wyściółka: 10piks;
    promień granicy: 5piks;
    pudełko-cień: 0 2piks 4piksrgba(0,0,0,.2);
    }

    .przepish3 {
    górny margines: 0;
    margines-dolny: 10piks;
    }

    .przepisul {
    margines: 0;
    wyściółka: 0;
    styl listy: nic;
    }

    .przepisulli {
    margines-dolny: 5piks;
    }

  9. Sprawdź, czy jest więcej niż jeden przepis. Jeśli tak, ukryj komunikat o błędzie:
    noRecipes.style.display = przepisy.długość > 0? „brak”: „elastyczny”;
  10. Wywołaj nową funkcję wewnątrz funkcji handleSubmit(), po dodaniu nowej receptury do tablicy receptur:
    wyświetlPrzepisy();
  11. Otwórz plik index.html w przeglądarce:
  12. Dodaj przepisy do listy i obserwuj, jak pojawiają się po prawej stronie:

Jak usunąć przepisy

Przepisy można usuwać, klikając przycisk Usuwać przycisk pod instrukcjami przepisu.

  1. Dodaj styl CSS dla przycisku usuwania:
    przycisk-usuń {
    kolor tła: #dc3545;
    kolor: #ffff;
    granica: nic;
    promień granicy: 5piks;
    wyściółka: 5piks 10piks;
    kursor: wskaźnik;
    }

    przycisk-usuń:unosić się {
    kolor tła: #c82333;
    }

  2. W pliku JavaScript dodaj nową funkcję, aby usunąć przepis:
    funkcjonowaćuchwytUsuń(wydarzenie) {

    }

  3. Korzystając ze zdarzenia JavaScript, znajdź indeks przepisu, który kliknął użytkownik:
    Jeśli (event.target.classList.contains(przycisk „usuń”)) {
    konst indeks = zdarzenie.cel.zestaw danych.indeks;
    }
  4. Użyj indeksu, aby usunąć wybraną recepturę z tablicy receptur:
    przepisy.splice (indeks, 1);
  5. Odśwież listę przepisów wyświetlaną na stronie:
    wyświetlPrzepisy();
  6. Dodaj detektor zdarzeń, aby wywoływał funkcję handleDelete(), gdy użytkownik kliknie przycisk usuwania:
    listaprzepisów.addEventListener('Kliknij', uchwytUsuń);
  7. Otwórz plik index.html w przeglądarce. Dodaj przepis, aby wyświetlić przycisk usuwania:

Jak wyszukiwać przepisy

Możesz wyszukiwać przepisy za pomocą paska wyszukiwania, aby sprawdzić, czy dany przepis istnieje.

  1. W prawej kolumnie dodaj pasek wyszukiwania przed listą przepisów:
    <dzID="sekcja wyszukiwania">
    <h3>Lista przepisówh3>
    <etykietaDo="pole wyszukiwania">Szukaj:etykieta>
    <wejścietyp="tekst"ID="pole wyszukiwania">
    dz>
  2. Dodaj styl CSS dla etykiety paska wyszukiwania:
    etykieta[za="pole wyszukiwania"] {
    wyświetlacz: blok;
    margines-dolny: 10piks;
    }
  3. W script.js pobierz element HTML pola wyszukiwania:
    konst pole wyszukiwania = dokument.getElementById(„pole wyszukiwania”);
  4. Wewnątrz nowej funkcji utwórz nową tablicę zawierającą przepisy, których nazwa pasuje do danych wejściowych wyszukiwania:
    funkcjonowaćszukaj(zapytanie) {
    konst filteredRecipes = przepisy.filter(przepis => {
    powrót przepis.nazwa.toLowerCase().zawiera (zapytanie.toLowerCase());
    });
    }
  5. Wyczyść listę przepisów aktualnie wyświetlanych na ekranie:
    lista przepisów.innerHTML = '';
  6. Przejrzyj w pętli każdy przefiltrowany przepis pasujący do wyniku wyszukiwania i utwórz nowy element div:
    filteredRecipes.forEach(przepis => {
    konst przepis El = dokument.utwórzElement(„dział”);
    });
  7. Dodaj zawartość HTML filtrowanej receptury do elementu div:
    przepisEl.innerHTML = `

    ${nazwa.przepisu}</h3>

    <mocny>Składniki:mocny></p>


      ${przepis.składniki.map(ingr =>`
    • ${ingr}
    • `
      ).dołączyć('')}
      </ul>

      <mocny>Metoda:mocny></p>

      ${przepis.metoda}</p>

  8. Dodaj tę samą klasę przepisu, aby uzyskać spójną stylizację. Dodaj nowy div do listy wyświetlanej na stronie:
    przepisEl.klasaLista.add('przepis');
    lista_przepisów.appendDziecko (przepisEl);
  9. Dodaj detektor zdarzeń, aby wywoływał funkcję search(), gdy użytkownik wpisze w pasku wyszukiwania:
    searchBox.addEventListener('wejście', zdarzenie => wyszukaj (event.target.value));
  10. Wewnątrz funkcji handleDelete() wyczyść pole wyszukiwania, jeśli użytkownik usunie element, aby odświeżyć listę:
    searchBox.wartość = '';
  11. Otwórz plik index.html w przeglądarce internetowej, aby wyświetlić nowy pasek wyszukiwania i dodaj kilka przepisów:
  12. Dodaj nazwę przepisu do paska wyszukiwania, aby przefiltrować listę przepisów:

Tworzenie projektów za pomocą HTML, CSS i JavaScript

Ten projekt pokazuje, jak zbudować interfejs front-end dla prostej książki kucharskiej. Pamiętaj, że nie ma serwera zaplecza, a aplikacja nie przechowuje danych; jeśli odświeżysz stronę, utracisz wprowadzone zmiany. Jednym z możliwych rozszerzeń, nad którym możesz popracować, jest mechanizm zapisywania i ładowania danych przy użyciu localStorage.

Aby poprawić swoje umiejętności tworzenia stron internetowych, kontynuuj poznawanie innych zabawnych projektów, które możesz tworzyć na własnym komputerze.