Egyszerű To-Do Lista Készítése: HTML, CSS és JavaScript Kóddal

A to-do lista egy alapvető projekt, amely segít elsajátítani a front-end fejlesztés alapjait. Ebben a cikkben bemutatjuk, hogyan készíthetsz egy egyszerű és funkcionális to-do listát HTML, CSS és JavaScript használatával. Az eredmény egy reszponzív, modern megjelenésű alkalmazás lesz, amelyen új feladatokat adhatsz hozzá, kipipálhatod azokat, és törölheted is őket.

1. lépés: Alap HTML Struktúra

Kezdjük az alap HTML struktúrával. Hozzuk létre az index.html file-t. Ez tartalmaz egy input mezőt a feladatok beviteléhez, egy „Hozzáadás” gombot, valamint egy listaelemet, amely a feladatokat fogja tárolni.

<!DOCTYPE html>
<html lang="hu">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>To-Do Lista</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div class="todo-container">
        <h1>To-Do Lista</h1>
        <div class="input-container">
            <input type="text" id="todo-input" placeholder="Új feladat...">
            <button id="add-button">Hozzáadás</button>
        </div>
        <ul id="todo-list"></ul>
    </div>
    <script src="js/script.js"></script>
</body>
</html>

2. lépés: Alap CSS Stílusok

A stílusokkal modern, tiszta kinézetet érhetünk el. Hozzuk létre a style.css fájlt az alábbi tartalommal. Hozzuk létre a css/style.css

/* Alap stílusok */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #f4f4f4;
}

.todo-container {
    background: white;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 400px;
    text-align: center;
}

h1 {
    margin-bottom: 20px;
    color: #333;
}

.input-container {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

input[type="text"] {
    flex: 1;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
}

button {
    padding: 10px 20px;
    border: none;
    background-color: #007BFF;
    color: white;
    font-size: 16px;
    border-radius: 4px;
    cursor: pointer;
}

button:hover {
    background-color: #0056b3;
}

ul {
    list-style-type: none;
    padding: 0;
}

li {
    padding: 10px;
    background: #f9f9f9;
    margin: 5px 0;
    border-radius: 4px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

li.completed {
    text-decoration: line-through;
    color: #888;
}

.delete-btn {
    background: #ff4d4d;
    color: white;
    border: none;
    padding: 5px 10px;
    border-radius: 4px;
    cursor: pointer;
}

.delete-btn:hover {
    background: #cc0000;
}

3. lépés: Funkciók JavaScript segítségével

Hozzunk létre egy script.js fájlt, amely kezeli a feladatok hozzáadását, kipipálását és törlését. js/script.js

// Változók
const addButton = document.getElementById('add-button');
const todoInput = document.getElementById('todo-input');
const todoList = document.getElementById('todo-list');

// Feladat hozzáadása
addButton.addEventListener('click', () => {
    const task = todoInput.value.trim();
    if (task) {
        const li = document.createElement('li');
        li.textContent = task;

        // Törlés gomb
        const deleteButton = document.createElement('button');
        deleteButton.textContent = 'Törlés';
        deleteButton.classList.add('delete-btn');
        deleteButton.addEventListener('click', () => {
            li.remove();
        });

        // Kész állapot váltása
        li.addEventListener('click', () => {
            li.classList.toggle('completed');
        });

        li.appendChild(deleteButton);
        todoList.appendChild(li);
        todoInput.value = ''; // Input mező kiürítése
    }
});

Mappa struktúra

Projekt mappa

├── index.html # A fő HTML fájl
├── css # Stílusokat tartalmazó mappa
│ └── style.css # Az alkalmazás CSS fájlja
├── js # JavaScript kódokat tartalmazó mappa
│ └── script.js # Az alkalmazás funkcionális JavaScript kódja
└── README.md # Opcionális: Rövid dokumentáció a projekthez (pl. fejlesztési jegyzetek, használati utasítás)

Letöltés