css+svg实现四种木纹开关checkbox效果代码
代码语言:html
所属分类:其他
代码描述:css+svg实现四种木纹开关checkbox效果代码
代码标签: css svg 四种 木纹 开关 checkbox
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @charset "UTF-8"; /* Reset box-model and set borders */ /* ============================================ */ *, ::before, ::after { box-sizing: border-box; border-style: solid; border-width: 0; } /* Document */ /* ============================================ */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in iOS. * 3. Remove gray overlay on links for iOS. * 4. Render kerning consistently in all browsers. * 5. Correct font smoothing for macOS. * 6. Fix bottom navigation area issue for Safari 15+. */ html { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -webkit-tap-highlight-color: transparent; /* 3 */ font-feature-settings: "kern"; /* 4 */ -webkit-font-feature-settings: "kern"; /* 5 */ -moz-font-feature-settings: "kern"; /* 5 */ -webkit-font-smoothing: antialiased; /* 5 */ -moz-osx-font-smoothing: grayscale; /* 5 */ } /* Sections */ /* ============================================ */ /** * Remove the margin in all browsers. */ body { margin: 0; } /** * Render the `main` element consistently in IE. */ main { display: block; } /* Vertical rhythm */ /* ============================================ */ p, table, blockquote, address, pre, iframe, form, figure, dl { margin: 0; } /* Headings */ /* ============================================ */ h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0; } /* Lists (enumeration) */ /* ============================================ */ ul, ol, menu { margin: 0; padding: 0; list-style: none; } /* Lists (definition) */ /* ============================================ */ dd { margin-left: 0; } /* Grouping content */ /* ============================================ */ /** * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ border-top-width: 1px; margin: 0; clear: both; color: inherit; } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. * 3. Wrap lines by default instead of overflow. */ pre { font-family: inherit; /* 1 */ font-size: inherit; /* 2 */ white-space: pre-line; /* 3 */ } address { font-style: inherit; } /* Text-level semantics */ /* ============================================ */ /** * Remove the gray background on active links in IE 10. */ a { background-color: transparent; text-decoration: none; color: inherit; } /** * 1. Remove the bottom border in Chrome 57- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: none; /* 2 */ } /** * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp { font-family: "Menlo", "Monaco", "Consolas", "Courier New", monospace; /* 1 */ font-size: inherit; /* 2 */ } /** * Add the correct font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Replaced content */ /* ============================================ */ /** * Prevent vertical alignment issues. */ svg, img, embed, object, iframe { vertical-align: bottom; } /* Forms */ /* ============================================ */ /** * Reset form fields to make them styleable. * 1. Make form elements stylable across systems iOS especially. * 2. Inherit text-transform from parent. */ button, input, optgroup, select, textarea { -webkit-appearance: none; /* 1 */ appearance: none; vertical-align: middle; color: inherit; font: inherit; background: transparent; padding: 0; margin: 0; border-radius: 0; text-align: inherit; text-transform: inherit; /* 2 */ } /** * Correct cursors for clickable elements. */ button, [type=button], [type=reset], [type=submit] { cursor: pointer; } button:disabled, [type=button]:disabled, [type=reset]:disabled, [type=submit]:disabled { cursor: default; } /** * Clickable labels and selects. */ select, label { cursor: pointer; } /** * Improve outlines for Firefox and unify style with input elements & buttons. */ :-moz-focusring { outline: auto; } select:disabled { opacity: inherit; } /** * 1. Remove padding. */ option { padding: 0; /* 1 */ } /** * Reset to invisible */ fieldset { margin: 0; padding: 0; min-width: 0; } legend { padding: 0; } /** * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { vertical-align: baseline; } /** * Remove the default vertical scrollbar in IE 10+. */ textarea { overflow: auto; } /** * Correct the cursor style of increment and decrement buttons in Chrome. */ [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto; } /** * Correct the outline style in Safari. */ [type=search] { outline-offset: -2px; } /** * Remove the inner padding in Chrome and Safari on macOS. */ [type=search]::-webkit-search-decoration { -webkit-appearance: none; } /* * Remove the ‘X’ from Chrome and Safari. */ input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration { display: none; } /** * 1. Hide file input completely. * 2. Remove selected file text. * 3. Set cursor to pointer for all browsers. */ input[type=file] { opacity: 0; /* 1 */ font-size: 0; /* 2 */ cursor: pointer; /* 3 */ } /** * Fix appearance for Firefox */ [type=number] { -moz-appearance: textfield; } /* Interactive */ /* ============================================ */ /* * Add the correct display in Edge, IE 10+, and Firefox. */ details { display: block; } /* * Add the correct display in all browsers. */ summary { display: list-item; } /* * Hide focus outline but keep it visible for Windows High Contrast Mode. */ :focus, [contenteditable]:focus { outline-style: solid; outline-color: transparent; } /* Tables */ /* ============================================ */ /** 1. Correct table border color inheritance in all Chrome and Safari. */ table { border-color: inherit; /* 1 */ border-collapse: collapse; } caption { text-align: left; } td, th { vertical-align: top; padding: 0; } th { text-align: left; font-weight: inherit; } /* Misc */ /* ============================================ */ /* * Make placeholder style consistent across all browsers. */ ::placeholder { opacity: 1; /* stylelint-disable-next-line color-named */ color: darkgray; } /* * Hide input arrow when used with datalist. */ ::-webkit-calendar-picker-indicator { /* stylelint-disable-next-line declaration-no-important */ display: none !important; } /* * 1. Remove image default bottom space. * 2. Prevent image from overflowing the container. */ img { display: block; max-width: 100%; } .visually-hidden { position: absolute; top: auto; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; white-space: nowrap; } @import url("https://fonts.googleapis.com/css2?family=Signika:wght@700&display=swap"); body { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 24px; min-height: 100vh; font-family: "Signika", sans-serif; font-weight: 700; background-color: #bbb; } .toggles-grid { display: flex; flex-direction: column; gap: 24px; } .toggles-container { display: flex; gap: 24px; } .toggle-container.a { display: flex; justify-content: space-between; align-items: center; position: relative; border-radius: 50px; padding: 0 6px; width: 62px; height: 28px; background-color: #bb5555; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5), 0 1px rgba(255, 255, 255, 0.5); transition-property: background-color; transition-duration: 0.4s; transition-timing-function: linear; } .toggle-container.a:has(:checked) { background-color: #5698bb; } .toggle-container.a .toggle-input { position: absolute; z-index: 2; inset: 0; cursor: pointer; } .toggle-container.a .toggle-handle { position: absolute; z-index: 1; top: 0; left: 0; border-radius: 50%; width: 28px; height: 28px; background-image: url("//repo.bfw.wiki/bfwrepo/icon/65ab41be2e690.png"); background-size: 328px 110px; background-position: center; box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.75), inset 0 -1px 4px #b75301, 0 1px 4px rgba(0, 0, 0, 0.75); transition-property: transform; transition-duration: 0.4s; } .a .toggle-input:checked + .toggle-handle { transform: translateX(34px); } .toggle-container.a .toggle-handle::before { content: ""; position: absolute; inset: 6.5px; border-radius: 50%; background-image: linear-gradient(rgba(174, 34, 1, 0.125), transparent); box-shadow: inset 0 1px 2px #ad2201, 0 1px 1px rgba(255, 255, 255, 0.75); } .toggle-container.a .toggle-icon { width: 24px; height: 24px; fill: #fff; filter: drop-shadow(0 -1px 1px rgba(0, 0, 0, 0.25)); } .toggle-container.b { display: flex; align-items: center; position: relative; border-radius: 5px; width: 72px; height: 28px; background-color: #775b40; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5), 0 1px rgba(255, 255, 255, 0.5); transition-property: background-color; transition-duration: 0.4s; transition-timing-function: linear; } .toggle-container.b:has(:checked) { background-color: #5698bb; } .toggle-container.b .toggle-input { position: absolute; z-index: 2; inset: 0; cursor: pointer; } .toggle-container.b .toggle-handle { display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; align-content: space-between; position: absolute; z-index: 1; left: 0; border-radius: inherit; padding: 9px; width: 36px; height: 100%; transform: translateX(-4px); background-image: url("//repo.bfw.wiki/bfwrepo/icon/65ab41be2e690.png"); background-size: 328px 110px; background-position: center; box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.75), inset 0 -1px 4px #b75301, 0 1px 4px rgba(0, 0, 0, 0.75).........完整代码请登录后点击上方下载按钮下载查看
网友评论0