반응형
https://www.cmsfactory.net/node/10144
input 요소의 테두리 색은 border 속성으로 정할 수 있습니다. 하지만 checkbox의 테두리 색은 border 속성으로 바꿀 수가 없습니다. 그래서 checkbox 테두리 색 변경은 다른 방식으로 접근해야 하는데, 그 중의 하나가 label 태그를 이용하는 것입니다. label을 클릭해도 해당 checkbox가 체크되거나 해제되는 것에 착안한 방법입니다.
다음과 같이 빈 라벨을 갖는 체크박스를 하나 만듭니다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS Tip | Checkbox Border Color</title> </head> <body> <h3>Checkbox Border Color</h3> <input type="checkbox" id="cb1"> <label for="cb1"></label> </body> </html>
다음의 CSS 코드로 라벨을 네모로 만들고 테두리를 원하는 모양으로 정합니다.
input[id="cb1"] + label { display: inline-block; width: 14px; height: 14px; border: 2px solid #bcbcbc; cursor: pointer; }
다음의 코드를 추가하여 라벨을 클릭했을 때의 모양을 정합니다.
input[id="cb1"]:checked + label:after { content: '\2714'; font-size: 12px; }
이제 라벨을 클릭하면 다음과 같이 됩니다.
다음의 코드를 추가하여 checkbox를 보이지 않게 합니다.
input[id="cb1"] { display: none; }
단순히 테두리를 바꾸는데 초점을 두었지만, label 태그는 다양하게 꾸밀 수 있으므로 여러 모양으로 체크박스를 만들 수 있습니다. 다음은 label을 회색 원으로 만들고 클릭하면 파란색 원이 되게 하는 예제입니다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS Tip | Checkbox Border Color</title> <style> input[id="cb2"] + label { display: inline-block; width: 14px; height: 14px; background-color: #bcbcbc; border-radius: 7px; cursor: pointer; } input[id="cb2"]:checked + label { background-color: blue; } input[id="cb2"] { display: none; } </style> </head> <body> <h3>Circle Checkbox</h3> <input type="checkbox" id="cb2"> <label for="cb2"></label> </body> </html>
반응형
'Web > HTML_CSS' 카테고리의 다른 글
::after 을 이용해 css 삼각형 , 화살표 가르키기 방향 , (0) | 2018.07.13 |
---|---|
[bootstrap] Popover with custom css styled radio buttons 팝오버 내부 라디오버튼 (0) | 2018.07.13 |
콤보박스(select)에서 Readonly (0) | 2017.10.31 |
TD 사이즈 조절 (0) | 2016.04.29 |
FLAT UI. (0) | 2015.12.23 |
댓글