点击查看html编辑器说明文档

暗黑键盘edit icon

|
|
Fork(复制)
|
|
提交反馈
嵌入
设置
下载
HTML
格式化
支持Emmet,输入 p 后按 Tab键试试吧!
<head> ...
展开
</head>
<body>
            
            
<!-- HTML结构:创建一个键盘按键布局 -->
<div class="flex">
  <!-- 键盘按键 Q W E R T Y -->
  <div class="key">Q</div>
  <div class="key">W</div>
  <div class="key">E</div>
  <div class="key">R</div>
  <div class="key">T</div>
  <div class="key">Y</div>
</div>
        
</body>
CSS
格式化
            
             /* 定义全局CSS变量 */
 :root {
     --sizeVar: 2vw;
     /* 用于控制整体大小的变量,基于视窗宽度 */
     --animVar: 200ms;
     /* 动画持续时间变量 */
 }

 /* 页面主体样式 */
 body {
     background-color: #282c34;
     position: absolute;
     inset: 0;
     /* 四周边距都设为0 */
     display: flex;
     justify-content: center;
     align-items: center;
     overflow: hidden;
 }

 /* 按键容器样式 */
 .flex {
     position: absolute;
     display: flex;
     background-color: #141615;
     padding: calc(var(--sizeVar) * 2.5);
     border-radius: calc(var(--sizeVar) * 1.5);
     /* 复杂的阴影效果,创建立体感 */
     box-shadow: 0 calc(var(--sizeVar) * 1) calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * -1) #ffffff99 inset,
         0 calc(var(--sizeVar) * 0.25) calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * 0.2) #00000055,
         0 calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * 2.5) calc(var(--sizeVar) * 0.2) #00000055;
     justify-content: center;
     align-items: center;
     gap: var(--sizeVar);
 }

 /* 单个按键样式 */
 .key {
     user-select: none;
     /* 禁止文字选择 */
     width: calc(var(--sizeVar) * 5.6);
     aspect-ratio: 1 / 1;
     /* 保持正方形比例 */
     /* 渐变背景 */
     background: linear-gradient(0deg,
             rgba(33, 33, 35, 1) 0%,
             rgba(53, 53, 53, 1) 100%);
     display: flex;
     justify-content: center;
     align-items: center;
     border-radius: calc(var(--sizeVar) * 0.7);
     font-size: calc(var(--sizeVar) * 2);
     font-family: sans-serif;
     font-weight: 300;
     color: #ffffff;
     cursor: pointer;
     box-shadow: 0 calc(var(--sizeVar) * 1) calc(var(--sizeVar) * 1) calc(var(--sizeVar) * -1) #ffffff55 inset,
         0 calc(var(--sizeVar) * -1) calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * -1) #ffffff33 inset,
         0 0 calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * 0.2) #00000055;
     transition: filter var(--animVar) ease-in-out 0s,
         box-shadow var(--animVar) ease-in-out 0s,
         color var(--animVar) ease-in-out 0s;
 }

 /* 按键悬停效果 */
 .key:hover {
     filter: brightness(90%);
     /* 降低亮度 */
     color: #666666;
     /* 改变文字颜色 */
     /* 移除内阴影效果 */
     box-shadow: 0 calc(var(--sizeVar) * 1) calc(var(--sizeVar) * 1) calc(var(--sizeVar) * -1) #ffffff00 inset,
         0 calc(var(--sizeVar) * -1) calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * -1) #ffffff00 inset,
         0 0 calc(var(--sizeVar) * 0.5) calc(var(--sizeVar) * 0.2) #00000055;
 }
        
JS
格式化
            
            
        
预览
控制台