[html/css] input checkbox 커스텀 이미지 사용하기

2024. 4. 2. 21:47·공부/프론트
728x90

이번 포스팅에서는 input checkbox를 커스텀해보려고 한다.

 

다음은 기본 input checkbox이다.

<input type="checkbox">

 

이 기본 input checkbox를 다음과 같이 변경해보자.

먼저 checkbox 이미지를 on, off 두 개를 준비한다. 이미지 뒤에 on, off를 붙여서 따로 저장하자.

 

1. input 태그 옆에 비어있는 label을 붙인다.

<input type="checkbox" id="check"><label for="check"></label>

 

label의 for 속성에 input 태그의 아이디를 입력하면 label을 눌렀을 때에도 해당 아이디를 가진 input 태그를 누른 것과 같은 효과를 가진다.

 

label에 아무것도 넣지 않은 이유는 이 label에 이미지를 입힐 것이기 때문이다.

 

2. input 태그의 display를 none으로 변경한다.

    #check{
        display: none;
    }

 

기본 체크박스를 사용하지 않을 것이기 때문에 보이지 않게 display: none 값을 준다,.

 

3. label에 width, height를 준다.

    label{
        display: block;
        width:30px;
        height:30px;
    }

 

label에 아무것도 넣지 않았기 때문에 그대로 실행하면 아무것도 보이지 않는다.

 

display와 height, width 속성을 준다.

 

4. input checkbox가 체크되었을 때와 그렇지 않을 때에 배경 이미지를 다르게 준다.

    /* off */
    #check+label{ 
        background-repeat: no-repeat; /* 반복 방지 */
        background-image: url('./images/checkbox_off.png'); /*off 이미지*/
    }
    /* on */
    #check:checked+label{
        background-repeat: no-repeat; /* 반복 방지 */
        background-image: url('./images/checkbox_on.png'); /*on 이미지*/
    }

 

배경 이미지 반복을 막기 위해 background-repeat: no-repeat을 주고 background-image에 다운받았던 이미지의 경로를 입력한다.

 

잘 동작하는지 확인하자.

<전체 html 코드>

    <input type="checkbox" id="check"><label for="check"></label>

<전체 css 코드>

    /* 기본 체크박스 감춤 */
    #check{
        display: none;
    }
    /* off */
    #check+label{ 
        background-repeat: no-repeat; /* 반복 방지 */
        background-image: url('./images/checkbox_off.png'); /*off 이미지*/
    }
    /* on */
    #check:checked+label{
        background-repeat: no-repeat; /* 반복 방지 */
        background-image: url('./images/checkbox_on.png'); /*on 이미지*/
    }
    label{
        display: block;
        width:30px;
        height:30px;
    }
728x90

'공부 > 프론트' 카테고리의 다른 글

[React] useReducer와 Context로 상태값 관리  (0) 2024.04.22
[html/css/js] 테이블 태그 안에 답글 기능 구현  (0) 2024.04.06
[html/css] 테이블 꾸미기 (모서리 둥글게)  (0) 2024.04.03
[html/css/js] 모달 창 구현 방법 정리  (0) 2024.03.26
[html/css] input 태그 안에 button 태그 넣기  (0) 2024.03.25
'공부/프론트' 카테고리의 다른 글
  • [html/css/js] 테이블 태그 안에 답글 기능 구현
  • [html/css] 테이블 꾸미기 (모서리 둥글게)
  • [html/css/js] 모달 창 구현 방법 정리
  • [html/css] input 태그 안에 button 태그 넣기
웅대
웅대
알고리즘과 백엔드를 중심으로 열심히 공부 중입니다! 같이 소통하며 공부해요!
    250x250
  • 웅대
    웅대 개발 블로그
    웅대
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 백준 알고리즘
        • dp
        • 문자열
        • 정렬
        • 스택
        • 브루트 포스
        • 이진 탐색
        • 정리
        • 우선순위 큐
        • 자료구조
        • 그래프
        • 기타
        • 그리디
      • 컴퓨터 언어
        • Kotlin
        • Python
        • C#
      • 공부
        • Database
        • Android Studio
        • Algorithm
        • 컴퓨터 구조론
        • Spring
        • lombok
        • AWS
        • Network
        • OS
        • Git & GitHub
        • AI
        • Computer Vision
        • 보안
        • Nginx
        • 프론트
        • express
        • GCP
        • grokking concurrency
        • DevOps
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    binary search
    스택
    codetree
    Vector Store
    스프링 OAuth2
    파이썬
    nn.RNN
    embedding
    bfs
    code tree
    다익스트라
    RNN
    ChatPromptTemplate
    openvidu 배포
    parametric search
    Merge
    AWS Lambda
    푸쉬 알람
    ci/cd
    influxDB CLI
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
웅대
[html/css] input checkbox 커스텀 이미지 사용하기
상단으로

티스토리툴바