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

使用css制作钢琴

2026-04-02 16:54:43CSS

使用CSS制作钢琴键盘

钢琴键盘由黑白键交替排列组成,黑键通常位于白键上方。以下方法通过HTML和CSS实现视觉上的钢琴效果。

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: 800px;
  height: 200px;
  margin: 0 auto;
}

.key {
  border: 1px solid #000;
}

.white {
  width: 40px;
  height: 180px;
  background: #fff;
  z-index: 1;
}

.black {
  width: 24px;
  height: 100px;
  background: #000;
  margin-left: -12px;
  margin-right: -12px;
  z-index: 2;
}

键盘布局优化

黑白键需要精确交错排列。每7个白键对应5个黑键,采用绝对定位调整黑键位置:

.piano .black {
  position: absolute;
}

/* 示例定位第一个黑键 */
.piano .black:nth-child(2) {
  left: 30px;
}

交互效果增强

添加悬停和按下效果提升真实感:

.white:hover {
  background: #eee;
}

.black:hover {
  background: #333;
}

.white:active {
  background: #ddd;
}

.black:active {
  background: #222;
}

完整音阶实现

完整钢琴通常包含88个键,可通过循环生成HTML或使用JavaScript动态创建。示例实现两个八度:

<div class="piano">
  <!-- C4到B4的白键 -->
  <div class="key white" data-note="C"></div>
  <div class="key black" data-note="C#"></div>
  <!-- 更多键位... -->
</div>

响应式调整

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

@media (max-width: 600px) {
  .piano {
    width: 100%;
  }
  .white {
    width: 10%;
  }
  .black {
    width: 6%;
    height: 60%;
  }
}

进阶效果(可选)

添加标签或音高标识:

使用css制作钢琴

.key::after {
  content: attr(data-note);
  position: absolute;
  bottom: 10px;
  width: 100%;
  text-align: center;
}

.black::after {
  color: white;
}

通过组合这些技术,可以创建出视觉精确且具备基础交互效果的CSS钢琴键盘。实际音乐应用需结合JavaScript处理音频触发。

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

相关文章

css如何制作三角形

css如何制作三角形

使用 border 属性制作三角形 通过设置元素的 border 属性,利用边框的透明特性可以创建三角形。将一个元素的宽度和高度设为 0,然后通过设置不同方向的边框宽度和颜色来实现。 .triang…

前端css制作

前端css制作

CSS 基础语法与结构 CSS(层叠样式表)通过选择器、属性和值定义样式。基本语法为: 选择器 { 属性: 值; } 例如: h1 { color: blue; font-size:…

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成。选择器指向需要样式化的HTML元素,声明块包含一个或多个用分号分隔的声明,每个声明由属性和值组成。 选择…

css菜单制作

css菜单制作

CSS 菜单制作方法 水平导航菜单 使用 display: inline-block 或 flexbox 可以轻松创建水平导航菜单。以下是一个基本示例: <nav> <ul c…

css 制作表格

css 制作表格

CSS 制作表格的方法 使用 CSS 制作表格可以通过多种方式实现,包括原生 HTML 表格样式、Flexbox 布局或 Grid 布局。以下是几种常见的方法: 原生 HTML 表格样式 HTML…

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏是最常见的方法。 <nav class="horizontal-nav"> <u…