티스토리 뷰

HTML checkbox 디자인 커스텀하기

문제상황

디자인 시안을 받았는데 기본 체크박스가 아닌 다른 모양의 체크박스였다.

해결

기본 체크박스는 숨김 처리하고 label을 이용해 스타일을 만든다.

텍스트의 위치 조정을 위해 별도의 wrapper를 만들고 position relative를 설정해준다음,

text 요소의 position 은 absolute로 잡아 조정한다.

예시 코드

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>

  <style>
    /* 기본 체크박스 디자인 숨김 */
    .checkbox {
      display: none;
    }

    /* 텍스트 위치 조정을 위한 wrapper */
    .checkbox-wrap {
      position: relative;
    }

    /* check되지 않았을 때 스타일 */
    .checkbox+.checkbox-label {
      display: inline-block;
      cursor: pointer;
      width: 20px;
      height: 20px;
      border: 1px solid #000000;
    }

    /* check되었을 때 스타일 */
    .checkbox:checked+.checkbox-label {
      background-color: blue;
    }

    /* checkbox 텍스트 */
    .checkbox-text {
      position: absolute;
      top: 4px;
      left: 28px;
      display: inline-block;
    }
  </style>
</head>

<body>
  <div class="checkbox-wrap">
    <input type="checkbox" name="" id="checkbox" class="checkbox">
    <label class="checkbox-label" for="checkbox"><span class="checkbox-text">텍스트</span></label>
  </div>
</body>

</html>

생각할 점

이거보다 좀더 좋은 방법이 있을까..? 체크박스나 라디오 박스는 실무에서 자주 사용할 테니 저장해놔야겠다.

사이트에서 자주 볼 수 있는 요소들은 미리 만들어 놓는 게 좋겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함