• 首页<…">
    前端开发社区前端开发社区
    • 首页
    • VUE.js
    • React.js
    • HTML
    • CSS
    • JavaScript
    • PHP
    • jquery
    • Java
    • MySQL
    • uniapp
    前端开发社区
    当前位置:首页 > CSS

    css3制作3d导航条

    2026-01-08 20:47:51CSS

    css3制作3d导航条

    使用CSS3制作3D导航条

    基础HTML结构

    <nav class="nav-3d">
      <ul>
        <li><a href="#">首页</a></li>
        <li><a href="#">产品</a></li>
        <li><a href="#">服务</a></li>
        <li><a href="#">关于</a></li>
        <li><a href="#">联系</a></li>
      </ul>
    </nav>

    CSS3样式设计

    .nav-3d {
      perspective: 1000px; /* 启用3D透视 */
      margin: 50px auto;
      width: 80%;
    }
    
    .nav-3d ul {
      display: flex;
      justify-content: space-around;
      list-style: none;
      padding: 0;
      transform-style: preserve-3d; /* 保持子元素3D效果 */
    }
    
    .nav-3d li {
      position: relative;
      width: 120px;
      height: 40px;
      transform-style: preserve-3d;
      transition: transform 0.5s ease;
    }
    
    .nav-3d a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      color: white;
      background: #3498db;
      text-decoration: none;
      position: absolute;
      backface-visibility: hidden; /* 隐藏背面 */
      transform-origin: 50% 50%;
    }
    
    .nav-3d a::before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: #2980b9;
      transform: rotateX(90deg) translateZ(20px);
      transform-origin: bottom center;
    }
    
    .nav-3d a::after {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: #1a5276;
      transform: rotateY(90deg) translateZ(20px);
      transform-origin: right center;
    }
    
    .nav-3d li:hover {
      transform: rotateX(-15deg) rotateY(15deg);
    }

    添加悬停动画效果

    .nav-3d li:hover a {
      transform: translateZ(20px);
      box-shadow: 0 10px 20px rgba(0,0,0,0.3);
    }
    
    .nav-3d li:hover a::before {
      transform: rotateX(90deg) translateZ(40px);
    }
    
    .nav-3d li:hover a::after {
      transform: rotateY(90deg) translateZ(40px);
    }

    实现3D旋转效果

    .nav-3d li {
      animation: float 6s ease-in-out infinite;
    }
    
    @keyframes float {
      0%, 100% {
        transform: rotateX(-5deg) rotateY(5deg);
      }
      50% {
        transform: rotateX(5deg) rotateY(-5deg);
      }
    }

    响应式调整

    @media (max-width: 768px) {
      .nav-3d ul {
        flex-direction: column;
        align-items: center;
      }
    
      .nav-3d li {
        margin: 10px 0;
      }
    }

    技术要点说明

    • perspective属性创建3D空间,数值越小透视效果越强
    • transform-style: preserve-3d确保子元素保持3D变换
    • backface-visibility控制元素背面的可见性
    • 使用伪元素(::before/::after)创建3D盒子的侧面
    • 通过translateZ控制元素在Z轴上的位置
    • 结合hover状态和过渡效果实现交互反馈

    扩展建议

    • 添加active状态样式增强用户体验
    • 使用CSS变量统一管理颜色和尺寸
    • 结合JavaScript实现更复杂的交互效果
    • 考虑添加纹理或渐变提升视觉效果
    • 测试不同浏览器的兼容性并添加必要的前缀

    css3制作3d导航条

    标签: 导航条
    分享给朋友:

    相关文章

    css导航条制作

    css导航条制作

    水平导航条制作 使用display: inline-block或flexbox实现水平排列 .navbar { background-color: #333; overflow: hidde…

    css制作导航条

    css制作导航条

    水平导航条制作 使用无序列表<ul>和<li>元素结合CSS浮动属性可以创建基础水平导航栏。关键CSS属性包括display: inline-block或float: left…

    css导航条制作

    css导航条制作

    CSS导航条制作方法 水平导航条 使用display: inline-block或flexbox实现水平导航条。设置背景色、内边距和悬停效果增强交互性。 <nav> <ul…

    用css制作导航条

    用css制作导航条

    基础导航条结构 使用HTML创建导航条的基本结构,通常包含一个<nav>标签和多个<a>标签: <nav class="navbar"> <a href…

    css制作右侧导航条

    css制作右侧导航条

    固定定位法 使用 position: fixed 将导航条固定在视口右侧,适合长页面滚动时保持可见。 .right-nav { position: fixed; top: 50%;…

    vue3.0实现导航条

    vue3.0实现导航条

    使用 Vue 3.0 实现导航条 Vue 3.0 提供了组合式 API 和更灵活的响应式系统,可以高效地实现导航条功能。以下是具体实现方法: 创建导航组件 新建一个 NavBar.vue 组件文件,…

    最新文章
    • java子类如何调用父类的方法

      2026-04-09 08:54:50

    • java如何定义一个类

      2026-04-09 08:51:25

    • java 如何四舍五入

      2026-04-09 08:49:47

    • java如何四舍五入

      2026-04-09 08:48:15

    • java如何输出数组中的数组

      2026-04-09 08:45:31

    标签列表
    • vue (13931)
    • 原理 (626)
    • 分页 (603)
    • 跳转 (582)
    • 页面 (1094)
    • 路由 (650)
    • 列表 (473)
    • 功能 (1256)
    • 文件 (456)
    • 项目 (532)
    • 菜单 (444)
    • 组件 (1026)
    • 表格 (673)
    • 数据 (497)
    • 图片 (790)
    • js (4916)
    • 如何实现 (1693)
    • 效果 (625)
    • react (3311)
    • jquery (2238)
    • css (2728)
    • php (4572)
    • java (3021)
    • uniapp (1363)
    • elementui (828)

    陕ICP备2023000799号  网站地图

    Powered By Z-BlogPHP. Theme by TOYEAN.