纯 css 画一个 MacBookAir

本文详细展示了如何使用HTML和CSS代码创建一个仿照MacBookAir设计的虚拟键盘,包括键盘布局和触摸板效果,适合前端开发者学习和模仿。
摘要由CSDN通过智能技术生成

效果图和代码如下

在这里插入图片描述

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>仿MacBookAir</title>
    <style>
      .board {
        margin: 0 auto;
        padding: 0 auto;
        width: 600px;
        height: 450px;
        margin-top: 50px;
        background: rgb(210, 210, 210);
        border-radius: 20px;
        position: relative;
        box-shadow: 0px 5px 6px rgb(160, 160, 160);
        background: -webkit-linear-gradient(60deg, rgba(250, 250, 250, 1) 25%, rgba(210, 210, 210, 1));
      }
      .board:before {
        content: '';
        display: block;
        width: 780px;
        height: 20px;
        background: rgb(210, 210, 210);
        border-top-left-radius: 390px 18px;
        border-top-right-radius: 390px 18px;
        background: -webkit-linear-gradient(top, rgb(210, 210, 210) 50%, rgb(255, 255, 255));
        border-bottom: 2px solid rgb(0, 0, 0);
        border-bottom: 2px solid rgb(0, 0, 0);
      }
      .board:before {
        content: '';
        display: block;
        width: 780px;
        height: 20px;
        background: rgb(210, 210, 210);
        border-radius: 0px 0px 3px 3px;
        border-top-left-radius: 390px 18px;
        border-top-right-radius: 390px 18px;
        position: absolute;
        top: -20px;
        left: -90px;
        border-bottom: 2px solid rgb(0, 0, 0);
        background: -webkit-linear-gradient(top, rgb(210, 210, 210) 50%, rgb(255, 255, 255));
      }
      .blackbar {
        width: 450px;
        height: 18px;
        position: absolute;
        left: 75px;
        border-radius: 2px;
        border-bottom: 2px solid #ffffff; /* 小白边 */
        border-right: 2px solid #ffffff;
        background: -webkit-linear-gradient(top, rgb(30, 30, 30), rgb(60, 60, 60) 35%, rgb(100, 100, 100) 50%, rgb(30, 30, 30) 65%);
        background: -linear-gradient(top, rgb(30, 30, 30), rgb(60, 60, 60) 35%, rgb(100, 100, 100) 50%, rgb(30, 30, 30) 65%);
      }
      .keyboard {
        position: absolute;
        width: 530px;
        height: 216px;
        left: 35px;
        top: 35px;
        border: 1px solid rgb(180, 180, 180);
        border-radius: 8px;
        background: rgba(250, 250, 250, 1);
        box-shadow: 2px 0px 2px rgb(180, 180, 180) inset, 0px 3px 3px rgb(180, 180, 180) inset, -5px -0px 1px rgb(255, 255, 255) inset, 0px -3px 3px rgb(180, 180, 180) inset;
      }
      ul,
      li {
        list-style: none;
        margin: 0 auto;
        padding: 0 auto;
        display: block;
        font-family: 'Vrinda';
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
      }
      ul {
        width: 530px;
        margin-top: 8px;
        padding-left: 8px;
        /* border:2px solid black; */
      }
      li {
        width: 29px;
        height: 29px;
        float: left;
        /* padding-left: 0px; */
        margin-right: 5px;
        margin-bottom: 5px;
        background-color: rgb(30, 30, 30);
        color: rgb(200, 200, 200);
        text-align: center;
        line-height: 28px;
        font-size: 12px;
        border-radius: 4px;
        border: 1px solid rgb(70, 70, 70);
        box-shadow: 1px 0px 0px rgb(0, 0, 0), 0px 1px 0px rgb(0, 0, 0), -1px 0px 0px rgb(0, 0, 0), 0px -1px 0px rgb(0, 0, 0);
      }
      li:nth-child(-n + 14):nth-child(n + 1) {
        width: 30px;
        height: 15px;
        line-height: 15px;
      }
      li:nth-child(-n + 27):nth-child(n + 15) span,
      li:nth-child(40) span,
      li:nth-child(41) span,
      li:nth-child(42) span,
      li:nth-child(53) span,
      li:nth-child(54) span,
      li:nth-child(-n + 66):nth-child(n + 64) span {
        display: block;
        margin-top: 5px;
        line-height: 0.5;
      }
      li:nth-child(28),
      li:nth-child(29) {
        width: 45px;
      }
      li:nth-child(43),
      li:nth-child(55) {
        width: 55px;
      }
      li:nth-child(56),
      li:nth-child(67) {
        width: 73px;
      }
      li:nth-child(-n + 74):nth-child(n + 68) {
        height: 33px;
      }
      li:nth-child(72) {
        width: 173px;
      }
      li:nth-child(71),
      li:nth-child(73) {
        width: 37px;
      }
      li:nth-child(75),
      li:nth-child(77),
      li:nth-child(78) {
        margin-top: 18px;
        height: 14px;
      }
      li:nth-child(76) {
        height: 13px;
        margin-top: 19px;
      }
      li:nth-child(78) {
        position: absolute;
        bottom: 22px;
        right: 38px;
      }
      .touch {
        position: absolute;
        width: 200px;
        height: 150px;
        border: 2px solid rgb(190, 190, 190);
        bottom: 23px;
        left: 200px;
        border-radius: 8px;
      }
    </style>
  </head>
  <body>
    <div class="board">
      <div class="blackbar"></div>
      <div class="keyboard">
        <ul>
          <li>esc</li>
          <li>F1</li>
          <li>F2</li>
          <li>F3</li>
          <li>F4</li>
          <li>F5</li>
          <li>F6</li>
          <li>F7</li>
          <li>F8</li>
          <li>F9</li>
          <li>F10</li>
          <li>F11</li>
          <li>F12</li>
          <li></li>
          <li><span>~</span><span></span></li>
          <li><span>!</span><span>1</span></li>
          <li><span>@</span><span>2</span></li>
          <li><span>#</span><span>3</span></li>
          <li><span>$</span><span>4</span></li>
          <li><span>%</span><span>5</span></li>
          <li><span>^</span><span>6</span></li>
          <li><span>&</span><span>7</span></li>
          <li><span>*</span><span>8</span></li>
          <li><span>(</span><span>9</span></li>
          <li><span>)</span><span>0</span></li>
          <li><span></span><span>-</span></li>
          <li><span>+</span><span>=</span></li>
          <li>delete</li>
          <li>tab</li>
          <li>Q</li>
          <li>W</li>
          <li>E</li>
          <li>R</li>
          <li>T</li>
          <li>Y</li>
          <li>U</li>
          <li>I</li>
          <li>O</li>
          <li>P</li>
          <li><span>{</span><span>[</span></li>
          <li><span>}</span><span>]</span></li>
          <li><span>|</span><span>\</span></li>
          <li>caps lock</li>
          <li>A</li>
          <li>S</li>
          <li>D</li>
          <li>F</li>
          <li>G</li>
          <li>H</li>
          <li>J</li>
          <li>K</li>
          <li>L</li>
          <li><span>:</span><span>;</span></li>
          <li><span>"</span><span>,</span></li>
          <li><span>enter</span><br /><span>return</span></li>
          <li>shift</li>
          <li>Z</li>
          <li>X</li>
          <li>C</li>
          <li>V</li>
          <li>B</li>
          <li>N</li>
          <li>M</li>
          <li><span><</span><span>,</span></li>
          <li><span>></span><span>.</span></li>
          <li><span>?</span><span>/</span></li>
          <li>shift</li>
          <li>fn</li>
          <li>ctrl</li>
          <li>alt</li>
          <li>command</li>
          <li></li>
          <li>command</li>
          <li>alt</li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
      </div>
      <div class="touch"></div>
    </div>
    <br />
  </body>
</html>
  • 36
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shifeng~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值