加减步进选择框动画效果
代码语言:html
所属分类:表单美化
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css?family=Rubik&display=swap"); :root { --color-black: #112c34; --color-blue-dark: #65849a; --color-mustard-light: #ede6d9; --color-mustard-extra-light: #fcf9ed; --color-mustard-midtone: #9c7830; } * { font-family: "Rubik", sans-serif; box-sizing: border-box; font-weight: 400; color: var(--color-black); -webkit-font-smoothing: antialiased; /* disable tap highlight color on mobile safari */ tap-highlight-color: rgba(0, 0, 0, 0); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { width: 100%; height: 100%; margin: 0 auto; /* disable double tap to zoom on mobile */ touch-action: manipulation; transition: background-color 0.2s ease-out; } #wrapper { position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } form { width: 100%; max-width: 340px; padding: 56px 48px; border-radius: 40px; box-shadow: 0px 8px 40px rgba(128, 128, 128, 0.15); display: flex; flex-direction: column; align-items: center; background-color: #fffef9; } form > div { margin-bottom: 32px; } form > div:last-child { margin-bottom: 0; } .number-input-container { width: 244px; display: grid; grid-template-columns: 48px auto 48px; } label { display: inline-block; margin-bottom: 4px; font-size: 12px; line-height: 24px; letter-spacing: 2px; text-transform: uppercase; color: var(--color-blue-dark); } .number-input { width: 100%; display: flex; flex-direction: row; background-color: var(--color-mustard-extra-light); overflow: hidden; } input[type="number"] { -webkit-appearance: none; -webkit-border-radius: 0px; -moz-appearance: none; appearance: none; position: relative; width: 100%; min-width: 100%; height: 48px; background-color: var(--color-mustard-extra-light); border: 1px solid var(--color-mustard-light); border-left: 1px solid rgba(0, 0, 0, 0); border-right: 1px solid rgba(0, 0, 0, 0); border-radius: none; font-size: 16px; line-height: 24px; text-align: center; transition: all 0.2s ease-out; } input[type="number"]:focus { background-color: white; border: 1px solid var(--color-mustard-midtone); outline: none; } input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } input[type="number"] { -moz-appearance: textfield; } button { position: relative; height: 100%; margin-top: 32px; padding: 12px 16px; background-color: var(--color-mustard-extra-light); border: 1px solid var(--color-mustard-light); border-radius: none; transition: all 0.1s ease-out; cursor: pointer; -webkit-appearance: none; -webkit-transform: scale(1); transform: scale(1); } button { margin: 0; color: var(--color-black); } button:active, button:focus { outline: none; } button::after { content: ""; position: absolute; opacity: 1; top: 0; left: 0; bottom: 0; right: 0; transition: inherit; background-position: center; background-repeat: no-repeat; } button:disabled { pointer-events: none; } button:disabled::after { opacity: 0.25; } .button-decrement::after { background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 12H7' stroke='%23112C34' stroke-width='2' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); } .button-increment::after { background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 7V17' stroke='%23112C34' stroke-width='2' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M17 12H7' stroke='%23112C34' stroke-width='2' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); } .button-decrement { border-right: none; } .button-increment { border-left: none; } @media (hover: hover) { input[type="number"]:hover, button:hover { background-color: white; } button:active { background-color: var(--color-mustard-extra-light); transform: translateY(1px); } } @media (hover: none) { button:active { background-color: white; transform: translateY(1px); } } </style> </head> <body translate="no"> <div id="wrapper"> <form action="javascript:void(0);"> <div> <div> <label for="hue">Hue</label> </div> <div class="number-input-container"> <button type="button" class="button-decrement" onclick="setNumber(event)" data-input-id="hue" data-operation="decrement"></button> <div class="number-input"> <input type=".........完整代码请登录后点击上方下载按钮下载查看
网友评论0