&l…">
当前位置:首页 > CSS

css制作钢琴块

2026-01-08 18:43:25CSS

使用CSS制作钢琴块

钢琴块可以通过HTML和CSS的配合实现,主要利用flexbox布局和伪元素来模拟钢琴的黑白键排列。

HTML结构

<div class="piano">
  <div class="key white"></div>
  <div class="key black"></div>
  <div class="key white"></div>
  <!-- 更多键... -->
</div>

CSS样式

.piano {
  display: flex;
  position: relative;
  width: 600px;
  height: 200px;
  background: #f0f0f0;
  border-radius: 5px;
}

.key.white {
  flex: 1;
  height: 100%;
  background: white;
  border: 1px solid #ccc;
  z-index: 1;
}

.key.black {
  position: absolute;
  width: 30px;
  height: 60%;
  background: black;
  z-index: 2;
  transform: translateX(-50%);
}

黑白键定位

黑键需要绝对定位覆盖在白键上方,通过left属性调整位置:

.key.black:nth-child(2) {
  left: 12.5%; /* 第一个黑键位置 */
}
.key.black:nth-child(4) {
  left: 37.5%; /* 第二个黑键位置 */
}
/* 其他黑键类似 */

交互效果

添加悬停和按下效果增强真实感:

.key.white:hover {
  background: #f8f8f8;
}
.key.black:hover {
  background: #333;
}
.key.white:active {
  background: #e0e0e0;
}
.key.black:active {
  background: #222;
}

完整示例

一个八度的钢琴块实现:

<div class="piano">
  <div class="key white" data-note="C"></div>
  <div class="key black" data-note="C#"></div>
  <div class="key white" data-note="D"></div>
  <div class="key black" data-note="D#"></div>
  <div class="key white" data-note="E"></div>
  <div class="key white" data-note="F"></div>
  <div class="key black" data-note="F#"></div>
  <div class="key white" data-note="G"></div>
  <div class="key black" data-note="G#"></div>
  <div class="key white" data-note="A"></div>
  <div class="key black" data-note="A#"></div>
  <div class="key white" data-note="B"></div>
</div>
.piano {
  display: flex;
  position: relative;
  width: 840px;
  height: 300px;
  margin: 50px auto;
  background: #333;
  padding: 5px;
  border-radius: 10px;
}

.key {
  box-sizing: border-box;
}

.key.white {
  flex: 1;
  height: 100%;
  background: white;
  border: 1px solid #999;
  border-radius: 0 0 5px 5px;
  z-index: 1;
}

.key.black {
  position: absolute;
  width: 40px;
  height: 60%;
  background: black;
  border-radius: 0 0 5px 5px;
  z-index: 2;
  transform: translateX(-50%);
}

/* 黑键定位 */
.key.black:nth-child(2) { left: 8.33%; }
.key.black:nth-child(4) { left: 25%; }
.key.black:nth-child(7) { left: 41.66%; }
.key.black:nth-child(9) { left: 58.33%; }
.key.black:nth-child(11) { left: 75%; }

响应式调整

通过媒体查询适应不同屏幕:

css制作钢琴块

@media (max-width: 768px) {
  .piano {
    width: 100%;
    height: 150px;
  }
  .key.black {
    width: 20px;
  }
}

标签: 钢琴css
分享给朋友:

相关文章

如何制作css

如何制作css

创建CSS文件 新建一个纯文本文件,将文件扩展名改为.css,例如style.css。确保文件名不含空格或特殊字符,使用连字符或下划线分隔单词。 编写CSS语法 CSS规则由选择器和声明块组成。选择…

使用css制作钢琴块

使用css制作钢琴块

使用 CSS 制作钢琴块 钢琴块通常由黑白键交替排列组成,可以通过 HTML 和 CSS 实现。以下是实现钢琴块的步骤: HTML 结构 创建一个包含黑白键的容器,使用 <div> 元素…

css制作许愿墙六块

css制作许愿墙六块

CSS 制作许愿墙六块布局 使用 CSS 创建一个六块许愿墙布局可以通过多种方式实现,以下是两种常见的方法:使用 CSS Grid 或 Flexbox。以下代码示例展示了如何实现这两种布局。 方…

css个人简历制作两页

css个人简历制作两页

使用CSS制作两页个人简历 创建两页的个人简历需要合理布局和分页控制,以下是实现方法: HTML基础结构 <!DOCTYPE html> <html lang="zh-CN">…

css网页制作

css网页制作

CSS 网页制作基础 CSS(层叠样式表)用于控制网页的视觉呈现,包括布局、颜色、字体等。以下为关键知识点和实用方法: 基本语法结构 CSS 规则由选择器和声明块组成: 选择器 { 属性: 值…

网页制作css

网页制作css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; 属性: 值; } 例如: p { color: blu…