&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(层叠样式表)是用于控制网页外观和布局的核心技术。以下是CSS网页制作的关键步骤和技巧: 基础语法与引入方式 CSS规则由选择器和声明块组成: 选择器 { 属性: 值…

css怎么制作三角形

css怎么制作三角形

使用边框制作三角形 通过设置元素的边框宽度和颜色,可以创建不同方向的三角形。将元素的宽度和高度设为0,利用边框的透明属性实现。 .triangle-up { width: 0; he…

怎么制作css表格

怎么制作css表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,CSS用于控制样式。以下是一个基础示例: <table class="styled-table">…

制作css导航栏实验

制作css导航栏实验

实验目标 通过CSS实现一个水平导航栏,包含悬停效果和响应式设计。 基本HTML结构 创建一个简单的导航栏HTML结构,使用<ul>和<li>标签组织导航项:…

css表头制作

css表头制作

CSS 表头制作方法 固定表头(滚动时保持可见) 使用 position: sticky 属性可以创建滚动时固定的表头。确保父容器有明确的高度和 overflow 属性。 .table-conta…

前端css制作

前端css制作

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