css布局实现32种吉他和弦效果代码
代码语言:html
所属分类:布局界面
代码描述:css布局实现32种吉他和弦效果代码,仅限chrome浏览器中运行
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> fret-board { --fret-board-bg: light-dark(#EEE, #333); --fret-board-fret-c: light-dark(#000, #FFF); --fret-board-fret-w: clamp(0.0625rem, 0.03125rem + 0.5cqi, 0.5rem); --fret-board-string-c: light-dark(#0008, #FFF8); --fret-board-string-w: clamp(0.0625rem, 0.03125rem + 0.5cqi, 0.125rem); /* private consts */ --_frets: attr(frets type(<number>), 4); --_strings: attr(strings type(<number>), 6); aspect-ratio: 1 / 1; background-color: var(--fret-board-bg); border-radius: var(--fret-board-bdrs, .5rem); box-sizing: border-box; container-type: inline-size; display: grid; font-family: var(--fret-board-ff, inherit); grid-template-columns: repeat(calc(var(--_strings) * 2), 1fr); grid-template-rows: var(--fret-board-top-row-h, 12%) repeat(calc(var(--_frets)), 1fr) var(--fret-board-bottom-row-h, 15%); place-items: center; /* Grid Lines (frets and strings) */ &::before { background-color: var(--fret-board-fret-bg, #0000); background-image: linear-gradient(90deg, var(--fret-board-string-c) var(--fret-board-string-w), #0000 0 var(--fret-board-string-w)), linear-gradient(180deg, var(--fret-board-fret-c) var(--fret-board-fret-w), #0000 0 var(--fret-board-fret-w)); background-position: 0 var(--fret-board-fret-w), 0 0; background-repeat: repeat-x, repeat-y; background-size: calc(100% / (var(--_strings) - 1) - (var(--fret-board-string-w) / var(--_strings))) calc(100% - (2 * var(--fret-board-fret-w))), 100% calc(100% / var(--_frets) - (var(--fret-board-fret-w) / var(--_frets))); box-shadow: 0 calc(0px - var(--fred-board-fret-bbsw, 1.5cqi)) 0 0 var(--fret-board-fret-c); content: ''; display: block; grid-area: 2 / 2 / calc(var(--_frets) + 2) / calc(var(--_strings) * 2); height: 100%; width: 100%; } /* Chord Name */ &::after { color: var(--fret-board-chord-c, light-dark(#222, #FFF)); content: attr(chord); font-size: var(--fret-board-chord-fs, 7.5cqi); font-weight: var(--fret-board-chord-fw, 500); grid-column: 2 / span calc((var(--_strings) * 2) - 2); grid-row: calc(var(--_frets) + 2); text-align: center; width: 100%; } /* Fret Number (optional). Set <li value="[number]"> to set fret offset */ ol { align-items: center; display: grid; font-size: var(--fret-board-fret-number-fs, 5cqi); font-weight: var(--fret-board-fret-number-fw, 400); grid-column: 1; grid-row: 2 / span var(--_frets); grid-template-rows: repeat(var(--_frets), 1fr); height: 100%; list-style-position: inside; padding: 0; } } string-note { --string-note-h: 12cqi; --string-note-open-mute-h: 5cqi; /* from attr() */ --barre: attr(barre type(<number>), 1); --fret: attr(fret type(<number>), 0); --string: attr(string type(<number>), 0); aspect-ratio: 1; background-color: var(--string-note-bg, currentColor); border-radius: 50%; box-sizing: border-box; display: grid; grid-column: calc((var(--_strings) * 2) - (var(--string) * 2 - 1)) / span calc(var(--barre) * 2); grid-row: calc(var(--fret) + 1); height: var(--string-note-h); isolation: isolate; list-style: none; place-content: center; &::after { color: var(--string-note-c, light-dark(#FFF, #222)); content: attr(finger); font-size: var(--string-note-fs, 7cqi); font-weight: var(--string-note-fw, 500); text-box: cap alphabetic; } &[barre] { aspect-ratio: unset; border-radius: var(--string-note-h); opacity: var(--string-note-barre-o, .6); width: 100%; } &[mute], &[open] { background-color: var(--string-note-mute-open-c, light-dark(#222, #FFF)); height: var(--string-note-open-mute-h); width: var(--string-note-open-mute-h); } &[mute] { border-image: conic-gradient(var(--fret-board-bg) 0 0) 50%/calc(50% - 0.25cqi); rotate: 45deg; } &[open] { border-radius: 50%; mask: radial-gradient(circle farthest-side at center, #0000 calc(100% - 1cqi), #000 calc(100% - 1cqi + 1px)); } } /* For this demo only */ body { font-family: system-ui; margin-inline: auto; max-width: 1000px; padding-inline: 1.5rem; } div { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } h2 { font-weight: 500; } /* Variations */ .dusty-blue { --fret-board-bg: #00bcd4; --fret-board-chord-c: #065863; --fret-board-fret-bg: #009eb3; --fret-board-fret-c: #1a4a50.........完整代码请登录后点击上方下载按钮下载查看
网友评论0