Nasıl oluşturulur: Yapılacaklar Listesi

CSS ve JavaScript kullanarak 'Yapılacaklar Listesi' oluşturma nasıl yapılır.

Yapılacaklar listesi

Görevleri organize etmek ve onların önceliklerini belirlemek için CSS ve JavaScript kullanarak "yapılacaklar listesi" oluşturun.

Try it yourself

Yapılacaklar listesi oluşturun

İlk adım - HTML ekleyin:

<div id="myDIV" class="header">
  <h2>Benim Yapılacaklar Listem</h2>
  <input type="text" id="myInput" placeholder="Başlık...">
  <span onclick="newElement()" class="addBtn">Ekle</span>
</div>
<ul id="myUL">
  <li>Spor salonuna gidin</li>
  <li class="checked">Faturaları ödeyin</li>
  <li>George ile buluşun</li>
  <li>Yumurta alın</li>
  <li>Kitap okuyun</li>
  <li>Ofis düzenleyin</li>
</ul>

İkinci adım - CSS ekleyin:

Başlık ve listelerin stillerini ayarlayın:

/* İç kenar boşluğunu ve çerçeveyi elemanın toplam genişliği ve yüksekliğine dahil edin */
* {
  box-sizing: border-box;
}
/* Listeden dış kenar boşluğunu ve iç kenar boşluğunu kaldırın */
ul {
  margin: 0;
  padding: 0;
}
/* Liste ögelerinin stillerini ayarlayın */
ul li {
  cursor: pointer;
  position: relative;
  padding: 12px 8px 12px 40px;
  background: #eee;
  font-size: 18px;
  transition: 0.2s;
  /* Liste ögelerini seçilemez hale getirin */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* Tüm tek numaralı liste ögelerini farklı bir renge ayarlayın (zebra desenli) */
ul li:nth-child(odd) {
  background: #f9f9f9;
}
/* Fare işaretçisi üzerindeyken arka plan rengi koyu hale getirin */
ul li:hover {
  background: #ddd;
}
/* Tıklama sırasında, arka plan rengini ekleyin ve metni çizkiniz */
ul li.checked {
  background: #888;
  color: #fff;
  text-decoration: line-through;
}
/* Tıkladığında "seçildi" işaretini ekleyin */
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;
}
/* Kapat düğmesi tarzını ayarlayın */
.close {
  position: absolute;
  right: 0;
  top: 0;
  padding: 12px 16px 12px 16px;
}
.close:hover {
  background-color: #f44336;
  color: white;
}
/* Başlık tarzını ayarlayın */
.header {
  background-color: #f44336;
  padding: 30px 40px;
  color: white;
  text-align: center;
}
/* Başlık sonrasını durdurun */
.header:after {
  content: "";
  display: table;
  clear: both;
}
/* Giriş alanı tarzını ayarlayın */
input {
  margin: 0;
  border: none;
  border-radius: 0;
  width: 75%;
  padding: 10px;
  float: left;
  font-size: 16px;
}
/* "ekle" düğmesinin tarzını ayarlayın */
.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;
}

Üçüncü adım - JavaScript ekle:

// Bir "kapat" düğmesi oluşturun ve her listeleme öğesine ekleyin
var myNodelist = document.getElementsByTagName("LI");
var i;
for (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