目次
トグルボタンのサンプル一覧
シンプル
<label class="t8-togglebtn-1">
<input type="checkbox">
</label>.t8-togglebtn-1 {
display: inline-block;
position: relative;
width: 75px;
height: 30px;
border-radius: 30px;
border: 3px solid #808080;
box-sizing: content-box;
cursor: pointer;
transition: border-color .5s;
}
.t8-togglebtn-1 input {
display: none;
}
.t8-togglebtn-1:has(:checked) {
border-color: #0d6efd;
}
.t8-togglebtn-1::after {
position: absolute;
top: 50%;
left: 5px;
transform: translateY(-50%);
width: 20px;
height: 20px;
border-radius: 50%;
background-color: #808080;
content: '';
transition: left .5s;
}
.t8-togglebtn-1:has(:checked)::after {
left: 50px;
background-color: #0d6efd;
}アイコン
<label class="t8-togglebtn-1a">
<input type="checkbox">
</label>.t8-togglebtn-1a {
display: flex;
align-items: center;
position: relative;
width: 100px;
height: 30px;
border-radius: 50px;
box-sizing: content-box;
background-color: #e97ca8;
cursor: pointer;
transition: background-color .5s;
}
.t8-togglebtn-1a:has(:checked) {
background-color: #7ab3d0;
}
.t8-togglebtn-1a::before {
position: absolute;
left: 7px;
width: 40px;
height: 40px;
border-radius: 50%;
background-color: #dc3545;
content: '';
transition: left .5s;
}
.t8-togglebtn-1a:has(:checked)::before {
left: 50px;
background-color: #0d6efd;
}
.t8-togglebtn-1a::after {
position: absolute;
left: 26px;
transform: translateX(-50%);
color: #fff;
font-weight: 600;
font-size: 1em;
font-family: "Font Awesome 5 Free";
content: '\f023';
font-weight: 900;
transition: left .5s;
}
.t8-togglebtn-1a:has(:checked)::after {
left: 71px;
font-family: "Font Awesome 5 Free";
content: '\f3c1';
font-weight: 900;
}
.t8-togglebtn-1a input {
display: none;
}
文字入り
<label class="t8-togglebtn-2">
<input type="checkbox">
<p><span>ON</span> OFF</p>
</label>.t8-togglebtn-2 {
display: inline-block;
position: relative;
width: 75px;
height: 30px;
border-radius: 30px;
border: 3px solid #808080;
box-sizing: content-box;
cursor: pointer;
transition: border-color .5s;
}
.t8-togglebtn-2 p{
font-size: 0.7em;
font-weight: bold;
position: relative;
top: 22%;
left: 20%;
}
.t8-togglebtn-2 span{
color: #0d6efd;
}
.t8-togglebtn-2 input {
display: none;
}
.t8-togglebtn-2:has(:checked) {
border-color: #0d6efd;
}
.t8-togglebtn-2::after {
position: absolute;
top: 50%;
left: 5px;
transform: translateY(-50%);
width: 30px;
height: 30px;
border-radius: 50%;
background-color: #808080;
content: '';
transition: left .5s;
}
.t8-togglebtn-2:has(:checked)::after {
left: 38px;
background-color: #0d6efd;
}切り替え
<label class="t8-togglebtn-2a">
<input type="checkbox">
<p>ON OFF</p>
</label>.t8-togglebtn-2a {
display: inline-block;
position: relative;
width: 80px;
height: 30px;
border-radius: 30px;
border: 3px solid #808080;
box-sizing: content-box;
cursor: pointer;
}
.t8-togglebtn-2a p{
font-size: 0.6em;
font-weight: bold;
position: relative;
top: 22%;
left: 18%;
z-index: 6;
}
.t8-togglebtn-2a input {
display: none;
}
.t8-togglebtn-2a::after {
position: absolute;
top: 50%;
left: 5px;
transform: translateY(-50%);
width: 30px;
height: 20px;
border-radius: 50%;
border: solid 3px #808080;
background-color: #808080;
content: '';
transition: left .5s;
}
.t8-togglebtn-2a:has(:checked)::after {
left: 41px;
background-color: #808080;
z-index: 4;
}
ボタン(大)
<label class="t8-togglebtn-3">
<input type="checkbox">
</label>.t8-togglebtn-3 {
display: inline-block;
position: relative;
width: 75px;
height: 30px;
border-radius: 30px;
background:#808080;
box-sizing: content-box;
cursor: pointer;
transition: border-color .5s;
}
.t8-togglebtn-3 input {
display: none;
}
.t8-togglebtn-3:has(:checked) {
background: #0d6efd;
}
.t8-togglebtn-3::after {
position: absolute;
top: 50%;
left: 0px;
transform: translateY(-50%);
width: 40px;
height: 40px;
border-radius: 50%;
background-color: #0dcaf0;
box-shadow: 0 0 5px #202020;
content: '';
transition: left .5s;
}
.t8-togglebtn-3:has(:checked)::after {
left: 40px;
background-color: #0dcaf0;
}ライン(細)
<label class="t8-togglebtn-4">
<input type="checkbox">
</label>.t8-togglebtn-4 {
display: inline-block;
position: relative;
width: 75px;
height: 15px;
border-radius: 30px;
background:#808080;
box-sizing: content-box;
cursor: pointer;
transition: border-color .5s;
}
.t8-togglebtn-4 input {
display: none;
}
.t8-togglebtn-4:has(:checked) {
background: #0d6efd;
}
.t8-togglebtn-4::after {
position: absolute;
top: 50%;
left: 0px;
transform: translateY(-50%);
width: 40px;
height: 40px;
border-radius: 50%;
background-color: #0dcaf0;
box-shadow: 0 0 5px #202020;
content: '';
transition: left .5s;
}
.t8-togglebtn-4:has(:checked)::after {
left: 40px;
background-color: #0dcaf0;
}四角形
<label class="t8-togglebtn-5">
<input type="checkbox">
</label>.t8-togglebtn-5 {
display: inline-block;
position: relative;
width: 75px;
height: 30px;
border: 3px solid #808080;
box-sizing: content-box;
cursor: pointer;
transition: border-color .5s;
}
.t8-togglebtn-5 input {
display: none;
}
.t8-togglebtn-5:has(:checked) {
border-color: #0d6efd;
}
.t8-togglebtn-5::after {
position: absolute;
top: 50%;
left: 5px;
transform: translateY(-50%);
width: 20px;
height: 20px;
background-color: #808080;
content: '';
transition: left .5s;
}
.t8-togglebtn-5:has(:checked)::after {
left: 50px;
background-color: #0d6efd;
}
スライド
<label class="t8-togglebtn-5b">
<input type="checkbox">
</label>.t8-togglebtn-5b {
display: inline-block;
position: relative;
width: 75px;
height: 30px;
border: 3px solid #808080;
box-sizing: content-box;
cursor: pointer;
transition: width .5s;
}
.t8-togglebtn-5b input {
display: none;
}
.t8-togglebtn-5b::after {
position: absolute;
top: 50%;
left: 0px;
transform: translateY(-50%);
width: 30px;
height: 30px;
overflow: hidden;
background-color: #0d6efd;
content: '';
transition: width .5s;
}
.t8-togglebtn-5b:has(:checked)::after {
width: 76px;
}つまみ
<label class="t8-togglebtn-5a">
<input type="checkbox">
</label>.t8-togglebtn-5a {
display: inline-block;
position: relative;
width: 5px;
height: 75px;
border-radius: 30px;
background:#808080;
box-sizing: content-box;
cursor: pointer;
transition: border-color .5s;
}
.t8-togglebtn-5a input {
display: none;
}
.t8-togglebtn-5a:has(:checked) {
background: #0d6efd;
}
.t8-togglebtn-5a::after {
position: absolute;
top: 90%;
left: -3px;
transform: translateY(-50%);
width: 10px;
height: 20px;
background-color: #0dcaf0;
box-shadow: 0 0 5px #202020;
content: '';
transition: top .5s;
}
.t8-togglebtn-5a:has(:checked)::after {
top: -3px;
background-color: #0dcaf0;
}
スイッチ
<div class="t8-togglebtn-6">
<input type="checkbox" id="part-a">
<label for="part-a"><i class="fa fa-power-off"></i></label>
</div>.t8-togglebtn-6 input[type="checkbox"] {
display: none;
}
.t8-togglebtn-6 label {
display: inline-block;
width: 50px;
height: 50px;
color: #808080;
text-align: center;
border: 3px solid #808080;
border-radius:30px;
box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.5);
transition: 1s;
-webkit-transition: 1s;
}
.t8-togglebtn-6 .icons{
vertical-align: center;
font-size: 50px;
font-weight: bold;
color: #808080;
}
.t8-togglebtn-6 i{
position: relative;
top: 7px;
}
.t8-togglebtn-6 input[type="checkbox"]:checked + label{
color: #0d6efd;
border-color: #0d6efd;
font-family: "Font Awesome 5 Free";
content: '\f023';
font-weight: 900;
}スイッチアイコン
<label class="t8-togglebtn-1b">
<input type="checkbox">
</label>.t8-togglebtn-1b {
display: flex;
align-items: center;
position: relative;
width: 100px;
height: 30px;
border-radius: 50px;
box-sizing: content-box;
cursor: pointer;
transition: background-color .5s;
-webkit-transition: .5s;
}
.t8-togglebtn-1b::before {
position: absolute;
left: 7px;
width: 42px;
height: 42px;
border-radius: 50%;
background-color: #dc3545;
content: '';
}
.t8-togglebtn-1b:has(:checked)::before {
background-color: #0d6efd;
}
.t8-togglebtn-1b::after {
position: absolute;
left: 27px;
transform: translateX(-50%);
color: #202020;
font-weight: 600;
font-size: 1em;
font-family: "Font Awesome 5 Free";
content: '\f023';
font-weight: 900;
}
.t8-togglebtn-1b:has(:checked)::after {
font-family: "Font Awesome 5 Free";
content: '\f3c1';
font-weight: 900;
}
.t8-togglebtn-1b input {
display: none;
}
スイッチレバー
ON
OFF
<div class="t8-togglebtn-7">ON<input type="checkbox" id="part-b">
<label for="part-b" class="t8-lever-1"></label> OFF</div>.t8-togglebtn-7 {
display: flex;
font-weight: bold;
}
input#part-b{
display: none;
}
label.t8-lever-1{
position: relative;
display: block;
width: 10em; height: 5em;
visibility: hidden;
overflow: hidden;
}
label.t8-lever-1:before{
visibility: visible;
content: '';
position: absolute;
top: 100%;
left: 50%;
height: 5em;
width: 5em;
border-radius: 100%;
background-color: #808080;
transform: translate(-50%,-50%);
z-index: 2;
}
label.t8-lever-1:after{
visibility: visible;
content: '';
position: absolute;
bottom: 0;
left: 50%;
width: .5em;
height: 5em;
border-radius: 10%;
background-color: #0d6efd;
transform-origin: center bottom;
transform: translateX(-50%) rotate(-60deg);
z-index: 1;
transition: .5s ease-in-out;
}
input#part-b:checked ~ label.t8-lever-1:after{
transform: translateX(-50%) rotate(+60deg);
}