Day 7 | Demo Search Tag

Sử dụng HTML , CSS, JS thiết kế các chức năng Search Tag

học lập trình frontend, fullstack hà nội, 48
				
						<body>
		<div class=container>
			<form class=form>
				<input type=text placeholder="Enter your todo" />
				<button>Add</button>
			</form>
			<ul class=todos></ul>
		</div> <script src=app.js></script> </body>
				
			
				
					* {
	padding: 0;
	margin: 0;
	font-family: sans-serif;
	box-sizing: border-box;
}
body {
	background: linear-gradient(to right, #ffe000, #799f0c);
	min-height: 100vh;
}
.container {
	width: 400px;
	background-color: #fff;
	margin: 100px auto;
	border-radius: 6px;
}
.form {
	padding: 10px 20px 10px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid #aaa;
}
.form input {
	outline: none;
	border: none;
	padding: 0 20px;
	font-size: 24px;
	color: #444;
	width: 100%;
}
.form button {
	outline: none;
	border: none;
	background-color: yellowgreen;
	padding: 5px 15px;
	border-radius: 6px;
	cursor: pointer;
	color: white;
	font-size: 20px;
}
.todos {
	padding: 0;
	margin: 0;
	list-style-type: none;
}
.todos li {
	border-top: 1px solid #e5e5e5;
	cursor: pointer;
	font-size: 22px;
	padding: 15px 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.todos li i {
	color: #aaa;
	opacity: 0;
}
.todos li:hover i {
	opacity: 1;
}
.todos li span {
	overflow: hidden;
	text-overflow: ellipsis;
	padding-right: 10px;
}
.todos li.completed span {
	color: #b6b6b6;
	text-decoration: line-through;
}

				
			
				
					const input = document.querySelector('form input')
const ul = document.querySelector('.todos')
const form = document.querySelector('form')
const todos = <a href=https://nodemy.vn/thao-tac-voi-json-trong-javascript-don-gian-de-hieu-cho-nguoi-moi-bat-dau-biet-den-va-tim-hieu-json-trong-javascript-important/ >JSON</a>.parse(localStorage.getItem('todos'))
if (todos) {
	todos.forEach((<a href=https://nodemy.vn/tao-ung-dung-todo-voi-usestate-trong-react-hook/ >todo</a>) => addTodo(todo))
}
<a href=https://nodemy.vn/tim-hieu-ve-ham-trong-javascript-cach-tao-truyen-tham-so-va-su-dung-mot-cach-hieu-qua-don-gian-de-hieu-danh-cho-nguoi-moi-bat-dau-important/ >function</a> addTodo(todo) {
	const li = document.createElement('li')
	li.setAttribute('class', todo.completed ? 'completed' : '')
	li.innerHTML = `
        <span>${todo.text}</span>
        <i class="fas fa-trash"></i>
    `
	li.addEventListener('click', function () {
		<a href=https://nodemy.vn/hieu-arrow-function-va-this-trong-javascript-tao-ra-nhung-ham-manh-me-voi-cu-phap-ngan-gon-huong-dan-day-du-cho-nguoi-moi-bat-dau-important/ >this</a>.classList.toggle('completed')
		updateTodos()
	})
	li.querySelector('i').addEventListener('click', (e) => {
		e.target.parentElement.remove()
		updateTodos()
	})
	ul.appendChild(li)
	updateTodos()
}
form.addEventListener('submit', (e) => {
	e.preventDefault()
	const text = input.value.trim()
	text != '' ? addTodo({ text, completed: false }) : undefined
	input.value = ''
})
function updateTodos() {
	const list = document.querySelectorAll('li')
	const todos = []
	list.forEach((item) => {
		todos.push({
			text: item.querySelector('span').innerHTML,
			completed: item.classList.contains('completed'),
		})
	})
	localStorage.setItem('todos', JSON.stringify(todos))
}

				
			
LỘ TRÌNH LÊN FULLSTACK, trọn bộ serial course Pro HTML,CSS,JAVASCRIPT MIỄN PHÍ :

HTML : HTML căn bản cho người mới bắt đầu

CSS : CSS căn bản cho người mới bắt đầu

JS: Javascript cho người mới bắt đầu 

 
 
 

Leave a Reply

Your email address will not be published. Required fields are marked *