-
[css] input checkbox 스타일 설정하기 :has 부모요소 선택쬬는 개발중 2022. 11. 22. 18:13반응형
input checkbox 스타일을 쉽게 지정할 방법은 어떤것이 있을까? 기존에 작성된 더러운 코드들을 다 뜯어고치고 공통으로 스타일을 찾아보는데 확실시 html구조에서는 label 안에 넣어서 input을 적용해주는게 한눈에 보기에도 직관적이고 좋아보였다.(기존에 내가 짯던 코드들은 요소들이 분리되어있어 한눈에 보기 너무 불편했었다) 문제는 input 에 들어갈 체크박스 스타일을 박아찾아보다가 input type값을 활용해 css에서 부모요소를 찾아 고정 스타일을 주는 방법을 생각해냈다.
👉 main.js
const TermsWrap = () => { return ( <Terms> <li> <div> <label htmlFor="terms"> <input type="checkbox" id="terms" /> <p>약관동의</p> </label> </div> </li> <li> <div> <label htmlFor="privacy"> <input type="checkbox" id="privacy" /> <p>개인정보 수집동의</p> </label> </div> </li> </Terms> ); };
input 요소를 체크해 부모 라벨에 스타일을 입혀주었다.
input는 타입에따라 스타일을 고정해서 사용이 가능하기때문에 이런식으로 작성하면 공통 스타일을 사용할때 매우매우 매우 편리했다.
앞으로도 :has 많이 이용할 예정!
👉 css
// input checkbox 타입의 스타일을 정의합니다 label:has(input[type="checkbox"]) { position: relative; } label:has(input[type="checkbox"]) p { font-size: 14px; color: var(--font_black_02); } label:has(input[type="checkbox"])::before { content: ""; position: absolute; width: 14px; height: 14px; background-image: url(/img/common/register/checkbox.svg); background-repeat: no-repeat; background-size: contain; } label:has(input[type="checkbox"]:checked)::before { content: ""; position: absolute; width: 14px; height: 14px; background-image: url(/img/common/register/checkbox_active.svg); background-repeat: no-repeat; background-size: contain; }
반응형'쬬는 개발중' 카테고리의 다른 글
[javascript] youtube embed 소스 자동재생 모바일에서 안된다면 (autoplay 이슈해결) | mobile 자동재생 안됨 (0) 2022.11.25 [javascript] 스크롤 내릴때 사라지고 올라갈때 나오는 검색바 만들기 (앱 호환) (0) 2022.11.23 [Next/image] Next 활용하기 + 전역변수 src 설정 에러 해결과정 (0) 2022.11.10 [javascript] 이메일 인증 타이머 기능 구현 (+ 애플로그인 구현 썰) (0) 2022.11.09 [css] 화면에서 object 요소가 정리되서 나오도록 하기 (0) 2022.11.02