Tento projekt vám pomůže zdokonalit vaše front-endové dovednosti a naučí vás, jak vytvořit rozhraní pomocí základních webových standardů.

Projekty jsou skvělým způsobem, jak zlepšit své dovednosti v HTML, CSS a JavaScriptu a posílit důležité koncepty a techniky.

Jedním z projektů, se kterým můžete začít, je kniha receptů, kterou můžete spustit v prohlížeči, jako je Google Chrome nebo Firefox.

V knize receptů obsahuje levá strana webové stránky sekci, do které může uživatel přidávat nové recepty. V pravé části stránky může uživatel prohlížet a vyhledávat existující receptury.

Jak požádat uživatele o přidání nového receptu

Přidejte počáteční obsah do souborů HTML, CSS a JavaScript. Pokud nejste obeznámeni s koncepty vývoje webu, existuje mnoho míst, kde můžete naučit se vývoj webu online.

Zde si také můžete prohlédnout celý příklad knihy receptů úložiště GitHub.

  1. Přidejte základní strukturu HTML do nového souboru HTML s názvem index.html:
    html>
    <html>
    <hlava>
    <titul>Aplikace receptůtitul>
    hlava>
    <tělo>
    <nav>
    <h1>Aplikace receptůh1>
    nav>
    <divtřída="kontejner">
    Obsah zde
    div>
    tělo>
    html>
  2. instagram viewer
  3. Uvnitř třídy kontejneru rozdělte stránku na levý a pravý sloupec:
    <divtřída="levý sloupec">

    div>
    <divtřída="pravý sloupec">

    div>

  4. Do levého sloupce přidejte formulář pro uživatele, aby mohl přidat nový recept. Uživatel může zadat název receptu, seznam ingrediencí a metodu:
    <h3>Přidat recepth3>

    <formulář>
    <označenípro="název receptu">Název:označení>
    <vstuptyp="text"id="název receptu"Požadované>
    <br />

    <označenípro="ingredience receptury">Ingredience:označení>
    <textareaid="ingredience receptury"řádky="5"Požadované>textarea>
    <br />

    <označenípro="metoda receptu">Metoda:označení>
    <textareaid="metoda receptu"řádky="5"Požadované>textarea>
    <br />

    <knoflíktyp="Předložit">Přidat receptknoflík>
    formulář>

  5. Do značky head souboru HTML přidejte odkaz na nový soubor CSS s názvem styles.css. Vytvořte soubor ve stejné složce jako soubor HTML:
    <odkazrel="stylesheet"href="styles.css">
  6. Do souboru CSS přidejte nějaký styl pro celkovou stránku:
    tělo {
    rodina písem: sans-serif;
    }

    nav {
    barva pozadí: #333;
    pozice: pevný;
    horní: 0;
    šířka: 100%;
    vycpávka: 20px;
    vlevo, odjet: 0;
    barva: bílý;
    zarovnání textu: centrum;
    }

    .kontejner {
    Zobrazit: flex;
    flex-direction: řádek;
    ospravedlnit-obsah: prostor-mezi;
    okraj: 150px 5%;
    }

    .levý sloupec {
    šířka: 25%;
    }

    .pravý sloupec {
    šířka: 65%;
    }

  7. Přidejte nějaký styl pro Přidat recepty formulář:
    formulář {
    Zobrazit: flex;
    flex-direction: sloupec;
    }

    označení {
    okraj-dole: 10px;
    }

    vstup[typ="text"], textarea {
    vycpávka: 10px;
    okraj-dole: 10px;
    hraniční poloměr: 5px;
    okraj: 1pxpevný#ccc;
    šířka: 100%;
    velikost krabice: border-box;
    }

    knoflík[typ="Předložit"] {
    vycpávka: 10px;
    barva pozadí: #3338;
    barva: #fff;
    okraj: žádný;
    hraniční poloměr: 5px;
    kurzor: ukazatel;
    }

  8. Do spodní části značky body v souboru HTML přidejte odkaz na soubor JavaScript s názvem script.js. Vytvořte soubor ve stejné složce:
    <tělo>
    Obsah
    <skriptsrc="script.js">skript>
    tělo>
  9. Uvnitř skriptu script.js použijte metodu querySelector procházet DOM a získat prvek formuláře ze stránky.
    konst forma = dokument.querySelector('formulář');
  10. Vytvořte nové pole pro uložení receptů, které uživatel zadá do formuláře:
    nechat recepty = [];
  11. V nové funkci získejte název, ingredience a pole metody zadané prostřednictvím formuláře. Můžete také implementovat ověření formuláře na straně klienta abyste zabránili neplatným vstupům nebo zkontrolovali, zda již existuje recept.
    funkcehandleSubmit(událost) {
    // Zabránění výchozímu chování při odesílání formuláře
    event.preventDefault();

    // Získání názvu receptu, ingrediencí a vstupních hodnot metody
    konst nameInput = dokument.querySelector('#recipe-name');
    konst ingInput = dokument.querySelector('#recipe-ingredients');
    konst metodaVstup = dokument.querySelector('#recipe-metoda');
    konst name = nameInput.value.trim();
    konst přísady = ingrInput.value.trim().split(',').mapa(i => i.trim());
    konst metoda = methodInput.value.trim();
    }
  12. Pokud jsou vstupy platné, přidejte je do pole receptů:
    -li (název && ingredience.délka > 0 && metoda) {
    konst newRecipe = { název, přísady, metoda };
    recepty.push (novýRecept);
    }
  13. Vymažte vstupy ve formuláři:
    nameInput.value = '';
    ingrInput.value = '';
    methodInput.value = '';
  14. Po funkci handleSubmit() přidejte posluchač události pro volání funkce, když uživatel odešle formulář:
    form.addEventListener('Předložit', handleSubmit);
  15. Otevřete index.html v prohlížeči a zobrazte formulář vlevo:

Jak zobrazit přidané recepty

Recepty uložené v poli receptů můžete zobrazit na pravé straně stránky.

  1. V souboru HTML přidejte div, aby se v pravém sloupci zobrazil seznam receptů. Přidejte další div pro zobrazení zprávy, pokud neexistují žádné recepty:
    <divtřída="pravý sloupec">
    <divid="seznam receptů">div>
    <divid="bez receptů">Nemáte žádné recepty.div>
    div>
  2. Přidejte nějaké styly CSS pro seznam receptů:
    #seznam receptů {
    Zobrazit: mřížka;
    mřížka-šablona-sloupce: opakovat(automatické přizpůsobení, minmax(300px, 1fr));
    grid-gap: 20px;
    }

    #bez receptů {
    Zobrazit: flex;
    barva pozadí: #FFCCCC;
    vycpávka: 20px;
    hraniční poloměr: 8px;
    margin-top: 44px;
    }

  3. V horní části souboru JavaScript použijte prvky HTML k zobrazení seznamu receptů a chybové zprávy:
    konst Seznam receptů = dokument.querySelector('#recipe-list');
    konst noRecepty = dokument.getElementById('žádné recepty');
  4. Uvnitř nové funkce procházejte každý recept v poli receptů. Pro každý recept vytvořte nový div pro zobrazení tohoto receptu:
    funkcezobrazitRecepty() {
    recipeList.innerHTML = '';
    recepty.proKaždý((recept, index) => {
    konst receptDiv = dokument.createElement('div');
    });
    }
  5. Přidejte nějaký obsah do jednotlivého oddílu receptů, abyste zobrazili název, přísady a metodu. Div bude také obsahovat tlačítko pro odstranění. Tuto funkci přidáte v pozdějších krocích:
    receptDiv.innerHTML = `

    ${recipe.name}</h3>

    <silný>Ingredience:silný></p>


      ${recipe.ingredients.map(Ing =>`
    • ${ingr}
    • `
      ).připojit se('')}
      </ul>

      <silný>Metoda:silný></p>

      ${recipe.method}</p>

  6. Přidejte třídu pro stylování div:
    receptDiv.classList.add('recept');
  7. Připojte nový div k prvku HTML recipeList:
    recipeList.appendChild (recipeDiv);
  8. Přidejte styl třídy do souboru CSS:
    .recept {
    okraj: 1pxpevný#ccc;
    vycpávka: 10px;
    hraniční poloměr: 5px;
    box-shadow: 0 2px 4pxrgba(0,0,0,.2);
    }

    .recepth3 {
    margin-top: 0;
    okraj-dole: 10px;
    }

    .receptul {
    okraj: 0;
    vycpávka: 0;
    ve stylu seznamu: žádný;
    }

    .receptulli {
    okraj-dole: 5px;
    }

  9. Zkontrolujte, zda existuje více než jeden recept. Pokud ano, skryjte chybovou zprávu:
    noRecipes.style.display = recepty.délka > 0? 'none': 'flex';
  10. Po přidání nového receptu do pole receptů zavolejte novou funkci uvnitř funkce handleSubmit():
    displayRecipes();
  11. Otevřete index.html v prohlížeči:
  12. Přidejte recepty do seznamu a sledujte, jak se objeví na pravé straně:

Jak odstranit recepty

Recepty můžete smazat kliknutím na Vymazat tlačítko pod pokyny k receptu.

  1. Přidejte nějaký styl CSS pro tlačítko Odstranit:
    .tlačítko smazat {
    barva pozadí: #dc3545;
    barva: #fff;
    okraj: žádný;
    hraniční poloměr: 5px;
    vycpávka: 5px 10px;
    kurzor: ukazatel;
    }

    .tlačítko smazat:vznášet se {
    barva pozadí: #c82333;
    }

  2. Do souboru JavaScript přidejte novou funkci pro odstranění receptury:
    funkcehandleDelete(událost) {

    }

  3. Pomocí události JavaScript najděte index receptu, na který uživatel klikl:
    -li (event.target.classList.contains('tlačítko smazat')) {
    konst index = event.target.dataset.index;
    }
  4. Pomocí indexu odstraňte vybraný recept z pole receptů:
    recepty.splice (index, 1);
  5. Obnovte seznam receptů zobrazený na stránce:
    displayRecipes();
  6. Přidejte posluchač události, který zavolá funkci handleDelete(), když uživatel klikne na tlačítko Odstranit:
    recipeList.addEventListener('kliknout', handleDelete);
  7. Otevřete index.html v prohlížeči. Přidat recept pro zobrazení tlačítka smazat:

Jak hledat recepty

Recepty můžete vyhledávat pomocí vyhledávací lišty a zkontrolovat, zda určitý recept existuje.

  1. Do pravého sloupce přidejte vyhledávací lištu před seznam receptů:
    <divid="hledací sekce">
    <h3>Seznam receptůh3>
    <označenípro="vyhledávací pole">Vyhledávání:označení>
    <vstuptyp="text"id="vyhledávací pole">
    div>
  2. Přidejte styl CSS pro štítek vyhledávacího pole:
    označení[pro="vyhledávací pole"] {
    Zobrazit: blok;
    okraj-dole: 10px;
    }
  3. V script.js získejte prvek HTML vyhledávacího pole:
    konst vyhledávací pole = dokument.getElementById('vyhledávací pole');
  4. Uvnitř nové funkce vytvořte nové pole obsahující recepty, jejichž název odpovídá zadání vyhledávání:
    funkceVyhledávání(dotaz) {
    konst filterRecipes = recepty.filtr(recept => {
    vrátit se recept.název.toLowerCase().zahrnuje (query.toLowerCase());
    });
    }
  5. Vymažte seznam receptů aktuálně zobrazených na obrazovce:
    recipeList.innerHTML = '';
  6. Projděte každý filtrovaný recept, který odpovídá výsledku vyhledávání, a vytvořte nový prvek div:
    filterRecipes.forEach(recept => {
    konst receptEl = dokument.createElement('div');
    });
  7. Přidejte obsah HTML pro filtrovaný recept do div:
    receptEl.innerHTML = `

    ${recipe.name}</h3>

    <silný>Ingredience:silný></p>


      ${recipe.ingredients.map(Ing =>`
    • ${ingr}
    • `
      ).připojit se('')}
      </ul>

      <silný>Metoda:silný></p>

      ${recipe.method}</p>

  8. Přidejte stejnou třídu receptů pro konzistentní styl. Přidejte nový div do seznamu zobrazeného na stránce:
    receptEl.classList.add('recept');
    recipeList.appendChild (recipeEl);
  9. Přidejte posluchač události, který zavolá funkci search(), když uživatel zadá do vyhledávacího pole:
    searchBox.addEventListener('vstup', událost => hledat (událost.cílová.hodnota));
  10. Uvnitř funkce handleDelete() vymažte vyhledávací pole, pokud uživatel odstraní položku, aby se obnovil seznam:
    searchBox.value = '';
  11. Otevřete index.html ve webovém prohlížeči a zobrazte nový vyhledávací panel a přidejte některé recepty:
  12. Chcete-li filtrovat seznam receptů, přidejte do vyhledávacího pole název receptu:

Vytváření projektů pomocí HTML, CSS a JavaScriptu

Tento projekt ukazuje, jak vytvořit rozhraní front-end pro jednoduchou knihu receptů. Všimněte si, že neexistuje žádný backendový server a aplikace neuchovává data; pokud stránku obnovíte, ztratíte své změny. Jedním z možných rozšíření, na kterém byste mohli pracovat, je mechanismus pro ukládání a načítání dat pomocí localStorage.

Chcete-li zlepšit své dovednosti v oblasti vývoje webu, pokračujte ve zkoumání dalších zábavných projektů, které můžete vytvořit na svém vlastním počítači.