HTMLElement实现分组开关效果代码
代码语言:html
所属分类:其他
代码描述:HTMLElement实现分组开关效果代码,类别组有个总开关,下面有子选项开关,可全选,单独选择。
代码标签: HTMLElement 分组 开关
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> toggle-categories { display: block; ul { margin: 0; padding: 0; list-style: none; &:not(ul ul) { background-color: #88888830; /* width: fit-content; */ margin-inline: auto; padding-block-end: .25rem; } li:not(li li) { margin-block-end: .5rem; } ul { margin-block: .5rem; } } label { cursor: pointer; } /* category headings */ li:not(li li) > .toggle-input { background-color: #88888840; justify-content: space-between; font-weight: bold; label:not(.toggle) { padding-block: .25rem; } .toggle { --_height: .8rem; --_color: light-dark(red, hotpink); } &:hover .toggle { @media (pointer: fine) { /* --_slider-bg: oklch(from var(--_color) 60% 60% h); */ /* --_slider-active-bg: oklch(from var(--_color) 60% 40% h); */ --_slider-bg: var(--_color); --_slider-active-bg: var(--_color); } } } .toggle-input { padding: .25rem .75rem; display: flex; align-items: center; label { &:hover { cursor: pointer; } &:not(.toggle) { width: calc(100% - 2rem); } &.toggle + label { padding-inline: .5rem 0; } &:has(+ .toggle) { padding-inline: 0 .5rem; } } &:has(input:focus-visible) label:not(.toggle) { outline: solid 2px var(--_color, #6666bbef); outline-offset: -1px; } .toggle { --_color: #018259; /* --_color: light-dark(#018259, #014f4b); */ --_color-active: light-dark(var(--_color), oklch(from var(--_color) 48% c h)); --_transition: transform 0.2s ease-in-out, background-color 0.2s linear; --_height: 1rem; --_padding: calc(var(--_height) / 9); /* eg: 2px */ --_width: calc(1.5 * (var(--_height) + var(--_padding))); /* 30px */ --_circle: calc(var(--_height) - (2 * var(--_padding))); /* .........完整代码请登录后点击上方下载按钮下载查看
网友评论0