HTML, CSS 및 Javascript를 사용하여 카운터로 문자 제한 입력

안녕 친구들, 오늘 이 블로그에서는 글자 수 제한과 카운터가 있는 입력을 만드는 방법을 배웁니다. 이전 블로그에서 how to create a random password generator using HTML, CSS, and Javascript을 보았습니다. 이전에 javascript projects에서 많은 블로그를 공유했습니다. 원하는 경우 확인할 수 있습니다.

이 프로젝트 [카운터가 있는 입력 문자 제한]에는 위 이미지에서 볼 수 있듯이 입력, 아이콘, 카운터가 있습니다. 이 카운터 번호는 입력할 수 있는 문자 수를 사용자에게 알려줍니다. 처음에는 이 입력 필드가 회색 테두리 색상으로 비활성화되어 있지만 입력 필드에 초점을 맞추면 테두리 색상이 녹색으로 변경되어 입력 필드가 활성화되었음을 의미합니다.

다음을 좋아할 수 있습니다.


  • Custom Select Input with search option
  • Create Todo List App
  • Password strength checker
  • Text to Speech Converter

  • 입력 필드에 일부 문자를 입력하기 시작하면 아이콘 및 카운터의 색상도 입력 테두리 색상과 동일한 색상으로 변경되고 카운터는 입력한 문자 수만큼 감소하기 시작합니다.

    전체 비디오 자습서를 보고 싶거나 위에서 말한 내용을 이해하기 어렵다면 이 프로그램의 전체 비디오 [카운터가 있는 입력 문자 제한]를 볼 수 있습니다.

    전체 비디오 자습서 및 미리보기를 확인하십시오here .

    HTML 코드




    <!-- --------------------- Created By InCoder --------------------- -->
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title></title>
        <link rel="stylesheet" href="main.css">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css">
    </head>
    
    <body>
        <div class="wrapper">
            <div class="form-input">
                <input type="text" maxlength="20" placeholder="Name" required>
                <i class="fa-solid fa-at"></i>
                <span class="counter"></span>
            </div>
        </div>
    </body>
    
    </html>
    


    CSS 코드




    /* --------------------- Created By InCoder --------------------- */
    
    @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
    
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Poppins', sans-serif;
    }
    
    body{
        display: flex;
        height: 100vh;
        align-items: center;
        justify-content: center;
        background-color: #11ca71;
    }
    
    .wrapper{
        padding: 2rem 1.6rem;
        border-radius: .2rem;
        background-color: #fff;
    }
    
    .wrapper .form-input{
        position: relative;
    }
    
    .wrapper input {
        outline: none;
        width: 20rem;
        cursor: text;
        font-size: 1rem;
        position: relative;
        border-radius: .4rem;
        padding: .4rem 1.8rem;
        color: rgb(0 0 0 / 80%);
        transition: all .3s ease-in-out;
        border: 2px solid rgb(0 0 0 / 20%);
    }
    
    .wrapper input:focus,
    .wrapper input:valid {
        border: 2px solid #11ca71;
    }
    
    .wrapper input::placeholder {
        font-weight: 500;
        color: rgb(0 0 0 / 40%)
    }
    
    .wrapper .form-input i {
        top: 50%;
        left: 6%;
        z-index: 1;
        position: absolute;
        padding-left: .1rem;
        padding-right: .2rem;
        color: rgb(0 0 0 / 20%);
        transform: translate(-50%, -50%);
    }
    
    .wrapper .form-input span {
        right: -8%;
        z-index: 1;
        bottom: -100%;
        position: absolute;
        padding-left: .1rem;
        padding-right: .2rem;
        color: rgb(0 0 0 / 50%);
        transform: translate(-50%, -50%);
    }
    
    .wrapper input:valid ~ i {
        color: #11ca71;
    }
    
    .wrapper input:valid ~ span {
        color: #11ca71;
    }
    


    자바스크립트 코드




    let input = document.querySelector('.form-input input')
            counter = document.querySelector('.counter')
            maxLength = input.getAttribute('maxlength')
            counter.innerHTML = `${maxLength}/${maxLength}`
    
            input.addEventListener('keyup', (e) => {
                counter.innerHTML = `${parseFloat(maxLength) - e.target.value.length}/${maxLength}`
            })
    

    좋은 웹페이지 즐겨찾기