Πώς να δημιουργήσετε: Λίστα εργασιών

Μάθετε πώς να δημιουργήσετε μια

Λίστα εργασιών

Δημιουργία λίστας εργασιών με τη χρήση CSS και JavaScript για την οργάνωση εργασιών και την καθορισμό της προτεραιότητάς τους.

Try it yourself

Δημιουργία λίστας εργασιών

Βήμα 1 - Προσθήκη HTML:

<div id="myDIV" class="header">
  <h2>Η Λίστα Μουγών μου</h2>
  <input type="text" id="myInput" placeholder="Τίτλος...">
  <span onclick="newElement()" class="addBtn">Προσθέστε</span>
</div>
<ul id="myUL">
  <li>Visit the gym</li>
  <li class="checked">Πληρώστε λογαριασμούς</li>
  <li>Συνάντηση με τον Γιώργο</li>
  <li>Αγοράστε αυγά</li>
  <li>Διαβάστε ένα βιβλίο</li>
  <li>Οργανώστε το γραφείο</li>
</ul>

Βήμα 2 - Προσθήκη CSS:

Καθορισμός стυλών τίτλου και λίστας:

/* Περιλαμβάνει το περιθώριο και τα σύνορα στο συνολικό πλάτος και ύψος του στοιχείου */
* {
  κατηγορία κουτίου: περιλαμβάνει;
}
/* Αφαίρεση περιθωρίου και περιεχομένου από τη λίστα */
ul {
  margin: 0;
  χώρος: 0;
}
/* Καθορισμός стυλів στοιχείων λίστας */
ul li {
  cursor: pointer;
  θέση: σχετική;
  χώρος: 12px 8px 12px 40px;
  βάθος χρώματος: #eee;
  μέγεθος γραμματοσειράς: 18px;
  μεταβλητή μετάβασης: 0.2s;
  /* Καθορισμός των στοιχείων της λίστας ως μη επιλογήσιμα */
  -webkit-χρήση επιλογής χρήστη: none;
  -moz-χρήση επιλογής χρήστη: none;
  -ms-χρήση επιλογής χρήστη: none;
  χρήση επιλογής χρήστη: none;
}
/* Καθορισμός διαφορετικού χρώματος για τα ουδέτερα στοιχεία της λίστας (ζιγκ-ζαγκ) */
ul li:nth-child(odd) {
  βάθος χρώματος: #f9f9f9;
}
/* Αποκρυπτογράφηση χρώματος υποβάθρου όταν η μά우σα είναι αναπαράσταση */
ul li:hover {
  βάθος χρώματος: #ddd;
}
/* Προσθήκη χρώματος υποβάθρου και διαγράμμιση κειμένου όταν κλικάρετε */
ul li.checked {
  βάθος χρώματος: #888;
  χρώμα: #fff;
  text-decoration: line-through;
}
/* Προσθήκη σήματος "Αναμειγνύεται" με κλικ */
ul li.checked::before {
  content: '';
  position: absolute;
  border-color: #fff;
  border-style: solid;
  border-width: 0 2px 2px 0;
  top: 10px;
  left: 16px;
  transform: rotate(45deg);
  height: 15px;
  width: 7px;
}
/* Ρύθμιση στυλ του κουμπιού κλείσιμο */
.close {
  position: absolute;
  right: 0;
  top: 0;
  padding: 12px 16px 12px 16px;
}
.close:hover {
  background-color: #f44336;
  color: white;
}
/* Ρύθμιση στυλ της κεφαλίδας */
.header {
  background-color: #f44336;
  padding: 30px 40px;
  color: white;
  text-align: center;
}
/* Αφαίρεση κινήσεων μετά από την κεφαλίδα */
.header:after {
  content: "";
  display: table;
  clear: both;
}
/* Ρύθμιση στυλ πεδίου εισαγωγής */
input {
  margin: 0;
  border: none;
  border-radius: 0;
  width: 75%;
  padding: 10px;
  float: left;
  font-size: 16px;
}
/* Ρύθμιση στυλ κουμπιού "Προσθήκη" */
.addBtn {
  padding: 10px;
  width: 25%;
  background: #d9d9d9;
  color: #555;
  float: left;
  text-align: center;
  font-size: 16px;
  cursor: pointer;
  transition: 0.3s;
  border-radius: 0;
}
.addBtn:hover {
  background-color: #bbb;
}

Τρίτο βήμα - Προσθήκη JavaScript:

// Δημιουργία ενός κουμπιού "Κλείσιμο" για κάθε στοιχείο λίστας και προσθήκη του σε κάθε στοιχείο
var myNodelist = document.getElementsByTagName("LI");
var i;
Για (i = 0; i < myNodelist.length; i++) {
  var span = document.createElement("SPAN");
  var txt = document.createTextNode("\u00D7");
  span.className = "close";
  span.appendChild(txt);
  myNodelist[i].appendChild(span);
}
// 单击关闭按钮以隐藏当前列表项
var close = document.getElementsByClassName("close");
var i;
for (i = 0; i < close.length; i++) {
  close[i].onclick = function() {
    var div = this.parentElement;
    div.style.display = "none";
  }
}
// 单击列表项时添加一个“已选中”符号
var list = document.querySelector('ul');
list.addEventListener('click', function(ev) {
  if (ev.target.tagName === 'LI') {
    ev.target.classList.toggle('checked');
  }
}, false);
// 单击“添加”按钮时创建一个新的列表项
function newElement() {
  var li = document.createElement("li");
  var inputValue = document.getElementById("myInput").value;
  var t = document.createTextNode(inputValue);
  li.appendChild(t);
  if (inputValue === '') {
    alert("You must write something!");
  } else {
    document.getElementById("myUL").appendChild(li);
  }
  document.getElementById("myInput").value = "";
  var span = document.createElement("SPAN");
  var txt = document.createTextNode("\u00D7");
  span.className = "close";
  span.appendChild(txt);
  li.appendChild(span);
  for (i = 0; i < close.length; i++) {
    close[i].onclick = function() {
      var div = this.parentElement;
      div.style.display = "none";
    }
  }
}

Try it yourself