JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<h1>To Do List</h1>
<div id="inputfield"><input type="text" id="input"><button onclick="add()">新增</button></div>
<div id="todo">
<ul id="todoul">
</ul>
</div>
</body>
CSS
* {
list-style: none;
margin: 0;
}
h1 {
border: 5px rgb(255, 134, 48) solid;
background-color: rgba(230, 153, 65, 0.391);
border-top: none;
border-right: none;
border-radius: 20px;
padding: 1.5rem;
margin: 1.5rem;
width: 40%;
min-width: 170px;
}
#inputfield {
width: 40%;
margin: 0 1.5rem;
padding: 10px;
display: flex;
justify-content: center;
}
#inputfield input {
height: 30px;
width: 230px;
border-radius: 5px;
margin-right: 10px;
font-size: 16px;
border: 1px dashed rgb(255, 134, 48);
}
#inputfield button {
width: 80px;
min-width: 50px;
font-size: 15px;
border-radius: 10px;
background-color: rgba(230, 153, 65, 0.391);
border: 2px dashed rgb(255, 134, 48);
transition: all 0.2s ease;
}
#inputfield button:hover {
background-color: rgba(240, 183, 117, 0.753);
border: 2px dashed rgb(255, 134, 48);
cursor: pointer;
}
li {
width: 40%;
min-width: 170px;
margin: 8px 0;
padding: 15px;
font-size: 16px;
border-bottom: 2px dashed rgb(255, 134, 48);
}
li input {
margin: 0 0.5rem;
cursor: pointer;
}
JavaScript
function add(){
let todoText = document.getElementById('input').value; //取得input事項的值
let ul = document.getElementById('todoul'); //選取
let list = document.createElement('li'); //新增一個li
let span1 = document.createElement('span'); //新增等等要放勾勾的span
let span2 = document.createElement('span'); //新增等等要放事項的span
span2.textContent = todoText;//剛剛取得的input事項放進去
let checkbox = document.createElement('input'); //新增一個input
checkbox.type = "checkbox"; //input的種類是勾勾
//一一把element放到正確的位置
ul.append(list);
list.append(span1,span2);
span1.append(checkbox);
}