CSS를 사용하여 사용자 지정 토글 스위치를 만드는 방법
그래서 약간의 고심 끝에 이것을 만드는 방법을 배웠고 여러분 모두와 공유하고 싶습니다.
나는 이 기술을 그의Codepen에서 확인할 수 있습니다. 더 많은 흥미로운 펜이 있습니다.
전제 지식
HTML , CSS (특히 Pseudo Elements )의 기초
작동 방식
입력에 레이블을 할당할 때 모두 알고 있듯이 레이블도 클릭하여 입력을 대상으로 지정할 수 있습니다.
이것이 우리가 활용할 것이며 이를 통해 레이블을 확인란과 동일하게 작동하는 사용자 지정 스위치로 변환할 수 있습니다.
시작하자
다음은 이 버튼을 만들기 위해 따라야 할 단계입니다.
1. HTML 구조 만들기
이 단계에서는 입력 확인란인 html 요소와 여기에 할당된 레이블을 생성하지만 내부 콘텐츠는 비어 있어야 합니다.
참조 코드는 다음과 같습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
<script src="script.js" defer></script>
</head>
<body>
<input type="checkbox" name="switch" id="switch">
<label for="switch"></label>
</body>
</html>
2. 입력 요소 숨기기
이제 이전에 말했듯이 입력 요소를 숨길 것입니다. 레이블 요소로 스위치를 만들어 확인란이 필요하지 않습니다.
input[type="checkbox"] {
width: 0;
height: 0;
visibility: hidden;
}
3. 버튼 본체 스타일 지정
우리는 공이 움직일 스위치의 몸체나 바깥쪽 부분을 만들 것입니다.
참조 코드는 다음과 같습니다.
label {
display: block;
width: 500px;
height: 150px;
background-color: #477a85;
border-radius: 100px;
position: relative;
cursor: pointer;
transition: 0.5s;
box-shadow: 0 0 20px #477a8550;
}
4. 토글 볼 만들기
이제 유사 요소
::after
를 사용하여 토글 볼을 생성합니다.참조 코드는 다음과 같습니다.
label::after {
content: "";
width: 120px;
height: 120px;
background-color: #e8f5f7;
position: absolute;
border-radius: 70px;
top: 15px;
left: 15px;
transition: 0.5s;
}
이 단계에서 작업의 80%가 완료되었습니다. 이제 스위치가 작동하도록 애니메이션을 추가하기만 하면 됩니다.
5. 애니메이션 추가
레이블을 전환할 때 알 수 있듯이 확인란도 전환됩니다.
input:checked + label:after {
left: calc(100% - 10px);
transform: translateX(-100%);
}
input:checked + label {
background-color: #243d42;
}
:active
선택자를 사용하여 이를 수행할 수 있습니다. label:active:after {
width: 160px;
}
출력 미리보기
데모 사용해보기
나를 찾아줘
Reference
이 문제에 관하여(CSS를 사용하여 사용자 지정 토글 스위치를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/karankumarco/how-to-create-a-custom-toggle-switch-using-css-4pmi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)