본문 바로가기

러닝커뮤니티/웹프로그래밍

jQuery todo 리스트 기초 활용

Todo list 기능

  1. 할 일을 기록할 수 있다
  2. 저장된 일을 목록으로 보여준다
  3. 할 일을 삭제 할 수 있다
  4. 완료 상태로 만들 수 있다

CSS 파일 추가하기

  1. CSS는 HTML에 스타일을 적용하기 위해 사용한다.
  2. HTML 내부 <style> 태그로 작성할 수도 있지만 유지보수가 어렵다.
  3. 외부 CSS 파일을 만들어 HTML에 연결하는 방식이 일반적이다.
  4. CSS 파일은 <link> 태그를 사용해 불러온다.

내부 스타일 방식

<style>
    .red {
        color: #ff0000;
    }
</style>

<h1 class="red">Todo list</h1>
  • 스타일을 HTML 내부에 직접 작성한다.
  • 구조와 디자인이 섞여 관리가 불편하다.

외부 CSS 파일 방식

todo.css

.red {
    color: #ff0000;
}

HTML 연결

<link rel="stylesheet" href="./todo.css" />
<h1 class="red">Todo list</h1>
  • CSS를 별도 파일로 분리한다.
  • HTML과 스타일을 따로 관리할 수 있다.
  • 여러 페이지에서 동일한 CSS를 재사용할 수 있다.

외부 CSS 방식을 사용하는 이유

  1. HTML과 디자인이 분리되어 구조가 깔끔해진다.
  2. 여러 페이지에서 재사용 가능하다.
  3. 유지보수와 수정이 쉽다.

Todo 화면 구성

사용자가 할 일을 입력할 수 있는 입력창(input)이 필요하다.

입력된 할 일을 표시할 목록(ul, li)이 필요하다.

할 일을 추가하는 버튼이 필요하다.

각 할 일 항목에는 체크박스와 삭제 버튼을 포함한다.

기본 HTML 구조

  • 웹/앱 강의 듣기

입력창: 새로운 할 일을 적는다.

추가 버튼: 입력된 내용을 목록에 추가한다.

리스트(ul): 할 일 항목을 저장한다.

리스트 항목(li): 체크박스, 텍스트, 삭제 버튼으로 구성된다.

화면 구성 요소 정리

입력창 → 사용자 입력 처리

버튼 → 입력된 내용 추가

리스트 → 할 일 목록 표시

체크박스 → 완료 여부 표시

삭제 버튼 → 특정 항목 제거


todo.html

<html>
<head>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <link rel="stylesheet" href="./todo.css" />
</head>
<body>
    <div class="container">
        <div class="title">
            <h1>Todo list</h1>
        </div>

        <div class="contents">
            <div class="input-div">
                <input type="text" id="inputBox" />
                <button id="addButton">추가하기</button>
            </div>

            <ul>
                <li>
                    <input type="checkbox" id="checkBox" />
                    웹/앱 강의 듣기
                    <button id="deleteButton">X</button>
                </li>

                <li>
                    <input type="checkbox" id="checkBox" />
                    인터넷 쇼핑 입금하기
                    <button id="deleteButton">X</button>
                </li>

                <li>
                    <input type="checkbox" id="checkBox" />
                    투두 리스트 완성하기
                    <button id="deleteButton">X</button>
                </li>
            </ul>
        </div>
    </div>

    <script src="./todo.js"></script>
</body>
</html>
  • 입력창(input) → 새로운 할 일을 입력
  • 추가 버튼(button) → jQuery로 입력값을 ul에 추가
  • ul/li 구조 → 할 일 목록 표시
  • checkbox → 완료 표시용
  • delete 버튼 → 항목 삭제용
  • todo.js → 전체 동작(추가, 삭제, 완료 변경)을 담당

todo.css

body {
    background: #a1d0ff;
}

.container {
    width: 300px;
    margin: auto;
}

.title,
.contents {
    background: white;
    box-shadow: 0px 4px 10px 5px rgba(0, 0, 0, 0.15);
}

.title {
    text-align: center;
}

.contents {
    padding: 10px;
}

.input-div {
    display: flex;
}

#inputBox {
    flex-grow: 1;
    height: 30px;
}

li {
    list-style: none;
    margin: 20px 0px;
}

#deleteButton {
    margin: 0px 5px;
}