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

    css3制作3d导航条

    2026-01-08 20:47:51CSS

    使用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布局创建水平导航条。设置背景色、内边距和悬停效果增强交互性。 <nav> <ul class="…

    用css制作导航条

    用css制作导航条

    基础导航条结构 HTML结构使用无序列表<ul>和列表项<li>,这是语义化的标准做法: <nav> <ul class="navbar">…

    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制作下拉导航条 通过CSS的:hover伪类和display属性控制下拉菜单的显示与隐藏。HTML结构需嵌套无序列表,CSS设置定位和过渡效果。 HTML结构示例: <nav…

    用css制作导航条

    用css制作导航条

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

    最新文章
    • vue实现渐变色

      2026-02-24 21:41:14

    • vue如何实现多页面

      2026-02-24 21:39:51

    • vue点击实现弹出层

      2026-02-24 21:38:28

    • vue怎样实现点击切换

      2026-02-24 21:36:49

    • vue sync的实现原理

      2026-02-24 21:35:03

    标签列表
    • vue (6162)
    • 原理 (263)
    • 拖拽 (194)
    • 分页 (245)
    • 跳转 (270)
    • 页面 (481)
    • 路由 (327)
    • 列表 (207)
    • 功能 (503)
    • 项目 (218)
    • 菜单 (192)
    • 组件 (511)
    • 表格 (285)
    • 数据 (211)
    • 图片 (325)
    • js (2522)
    • 按钮 (177)
    • 如何实现 (672)
    • 效果 (277)
    • 加载 (178)
    • react (1925)
    • jquery (360)
    • css (952)
    • php (1140)
    • elementui (269)

    陕ICP备2023000799号  网站地图

    Powered By Z-BlogPHP. Theme by TOYEAN.