css修改checkbox样式

192 阅读1分钟

记录一下由css修改的checkbox样式,显示效果

image.png

image.png

ts文件

// 投射2.5D框
const boxGizmoOption = $("div.boxGizmo-switch-button");
boxGizmoOption.append($('span.title-text', null, "投射2.5D框"));
const boxGizmoCheckbox = $('input', {
   id: 'boxGizmo-inspect-input',
   type: 'checkbox',
});
const boxGizmoLabel = $('label.green', {
   for: 'boxGizmo-inspect-input'
}, '')
boxGizmoCheckbox.addEventListener('click', ()=>{
   BOXGIZMO_CHECKBOX_CHANGE.value = boxGizmoCheckbox.checked
})
boxGizmoOption.append(boxGizmoCheckbox);
boxGizmoOption.append(boxGizmoLabel);
pointcloudBar.appendChild(boxGizmoOption);

html效果,由js生成

<div class="boxGizmo-switch-button">
    <span class="title-text">投射2.5D框</span>
    <input id="boxGizmo-inspect-input" type="checkbox">
    <label class="green" for="boxGizmo-inspect-input"></label>
</div>

css样式


/* 投射2.5D框checkbox样式 */
.boxGizmo-switch-button {
    display: flex;
    align-items: center;
}

.boxGizmo-switch-button input[type="checkbox"] {
    display: none;
}

.boxGizmo-switch-button input[type="checkbox"] + label {
    display: inline-block;
    width: 40px;
    height: 20px;
    position: relative;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    margin: 0px 5px;
    box-sizing: border-box;
}
.boxGizmo-switch-button input[type="checkbox"] + label:after {
    content: '';
    display: block;
    position: absolute;
    left: 0px;
    top: 0px;
    width: 20px;
    height: 20px;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    cursor: pointer;
}

.boxGizmo-switch-button #boxGizmo-inspect-input:checked + label.green {
    background: #FFC000;
}

.boxGizmo-switch-button #boxGizmo-inspect-input:checked + label.green:after {
    background: #FFFFFF;
}