Korean_hamster
지현의 개발자 성장과정
Korean_hamster
전체 방문자
오늘
어제
  • 분류 전체보기 (122)
    • Front-End Developer (79)
      • Project (12)
      • HTML (8)
      • CSS (17)
      • Computer Science (9)
      • JavaScript (20)
      • React (13)
    • 이런저런 생각 (7)
    • 주간 성장회고 (24)
    • English (0)
    • 리뷰 (2)
    • Books (5)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • 리액트
  • CS
  • 반응형웹
  • 멋쟁이사자처럼
  • 라우터
  • 프론트앤드
  • fetch
  • CSS
  • 비전공개발자
  • 깃헙
  • 깃
  • flex
  • 면접관님
  • sass
  • HTML
  • js
  • AtomicHabits
  • 비전공자개발자
  • 프론트앤드스쿨
  • 멋사

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Korean_hamster

지현의 개발자 성장과정

그냥 꾸미면 되는게 아냐..? - input 체크박스 꾸미기
Front-End Developer/CSS

그냥 꾸미면 되는게 아냐..? - input 체크박스 꾸미기

2022. 4. 14. 22:33

 

input 속성의 타입을 checkbox로 만들어주면, 위와 같은 모양의 체크박스가 default로 유지된다.

버튼처럼 그냥 보더를 없애고 예쁘게 꾸미면 되는 줄 알았는데... 그게 아니다?

 

이런 예쁜 체크박스들은.. 다 어디서 오는거야?

 

사실 체크박스는 기본 모양을 다르게 꾸며서 (버튼 꾸미는 것 처럼) 스타일링을 하는 것이 아니고,

기본 모양을 아예 보이지 않게 처리 한 뒤, 그 공간에 원하는 형태의 박스 이미지를 넣어줌으로써(이미지였다니!!) 변경하는 것이다.

체크 했을 때의 변경 된 모습은, 가상선택자 :checked를 사용하여 체크시 변경된 모습의 이미지를 하나 더 넣어주는 것이다.(속았다!)

 


체크박스 구현해보기

 

HTML

<p>
 <input class="stay-login-btn"
       type="checkbox"
       name="stay-login"
       id="chkbox"/>
 <label for="chkbox"><em></em>로그인 상태 유지</label>
</p>

 

체크 안했을 때
체크 했을 때

위의 체크박스를 만들어주겠다. 

 


1. 일단 기본 체크박스를 안보이게 만들자.

input[id="chkbox"] {
  display: none;
}

박스가 없어졌다!


2. 체크박스에 쓰일 이미지를 넣고 위치를 조정해주자

  • 체크박스의 인접요소인 label을 선택하고 그 안에 em을 선택하였다.

기본으로 표시될 이미지를 넣어주었다.

input[id="chkbox"] + label em {
  display: inline-block;
  width: 22px;
  height: 22px;
  margin-right: 8px;
  background: url(./images/check-box.svg) 0 0 no-repeat;
  vertical-align: sub;
  cursor: pointer;
}

 

 


3. 가상선택자로 :checked, 즉 체크되었을 때 사용할 이미지를 넣어준다.

체크가 되었을때 변신할 이미지! 자연스러운 변신을 위해 transition속성을 추가해주었다.

input[id="chkbox"]:checked + label em {
  background: url(./images/checked-box.svg);
  transition: all ease 0.3s 0s;
}

완성본

 

이제 나도 체크박스 예쁘게 만들 수 있다!

 

아래는 참고했던 영상 링크

https://www.youtube.com/watch?v=Aw1vO6Moe-g&t=245s 

 

저작자표시 (새창열림)

'Front-End Developer > CSS' 카테고리의 다른 글

항상 헷갈리는 text-align, 딱 두 가지만 기억하자  (4) 2022.04.19
알아두면 너무 유용한 네거티브 마진  (4) 2022.04.18
약방의 감초같은 image sprite기법으로 이모티콘 넣기  (2) 2022.04.14
가운데정렬의 난 case 1 - 이미지와 텍스트 수직정렬하기  (0) 2022.04.11
배운 flex로 있어보이는 반응형 Nav 바 만들어보기  (2) 2022.04.10
    Korean_hamster
    Korean_hamster
    Keep pushing myself to the limits

    티스토리툴바