使用HTML+Css+transform实现3D导航栏的示例代码


Posted in HTML / CSS onMarch 31, 2021

3D是three-dimensional的缩写,就是三维图形。在计算机里显示3D图形,就是说在平面里显示三维图形。不像现实世界里,真实的三维空间,有真实的距离空间。计算机里只是看起来很像真实世界,因此在计算机显示的3D图形,就是让人眼看上就像真的一样。人眼有一个特性就是近大远小,就会形成立体感。

计算机屏幕是平面二维的,我们之所以能欣赏到真如实物般的三维图像,是因为显示在计算机屏幕上时色彩灰度的不同而使人眼产生视觉上的错觉,而将二维的计算机屏幕感知为三维图像。基于色彩学的有关知识,三维物体边缘的凸出部分一般显高亮度色,而凹下去的部分由于受光线的遮挡而显暗色。这一认识被广泛应用于网页或其他应用中对按钮、3D线条的绘制。比如要绘制的3D文字,即在原始位置显示高亮度颜色,而在左下或右上等位置用低亮度颜色勾勒出其轮廓,这样在视觉上便会产生3D文字的效果。具体实现时,可用完全一样的字体在不同的位置分别绘制两个不同颜色的2D文字,只要使两个文字的坐标合适,就完全可以在视觉上产生出不同效果的3D文字。

案例

3D导航栏

效果:

<style>
   * {
     margin: 0;
     padding: 0;
   }
   ul {
     margin: 100px ;
   }
   ul li {
     width: 120px;
     height: 35px;
     list-style: none;
     perspective: 500px;
     float: left;
     margin: 0 5px;
   }
   .box {
     width: 100%;
     height: 100%;
     position: relative;
     transform-style: preserve-3d;
     transition: all .3s;
   }
   .box:hover{
     transform: rotateX(90deg);
   }
   .front,
   .bottom {
     width: 100%;
     height: 100%;
     position: absolute;
     top: 0;
     left: 0;
     display: flex;
     justify-content: center;
     align-items: center;
   }
   .front{
     background-color: pink;
     transform: translateZ(17.5px);
   }
   .bottom{
     background-color: teal;
     /* transform-origin: center bottom; */
     transform:translateY(17.5px) rotateX(-90deg);
   }
 </style>
<body>
  <ul>
    <li>
      <div class="box">
        <div class="front">天</div>
        <div class="bottom">地</div>
      </div>
    </li>
    <li>
      <div class="box">
        <div class="front">天</div>
        <div class="bottom">地</div>
      </div>
    </li>
 ...
  </ul>
</body>

使用HTML+Css+transform实现3D导航栏的示例代码

到此这篇关于使用HTML+Css+transform实现3D导航栏的示例代码的文章就介绍到这了,更多相关HTML transform实现3D导航栏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
浅析两列自适应布局的3种思路
May 03 HTML / CSS
详解CSS中iconfont的使用
Aug 04 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
May 09 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
May 07 HTML / CSS
Html5页面在微信端的分享的实现方法
Aug 30 HTML / CSS
html+css实现自定义图片上传按钮功能
Sep 04 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
Jan 08 HTML / CSS
Html5大文件断点续传实现方法
Dec 05 HTML / CSS
HTML5中的Web Notification桌面右下角通知功能的实现
Apr 19 HTML / CSS
小程序canvas中文字设置居中锚点
Apr 16 HTML / CSS
canvas绘制树形结构可视图形的实现
Apr 03 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
Aug 21 HTML / CSS
z-index不起作用
Mar 31 #HTML / CSS
元素水平垂直居中的方式
Mar 31 #HTML / CSS
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
简单实现一个手持弹幕功能+文字抖动特效
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
Mar 31 #HTML / CSS
Web前端:CSS最强总结 附详细代码
血轮眼轮回眼特效 html+css
You might like
其他功能
2006/10/09 PHP
php.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
php判断表是否存在的方法
2015/06/18 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
javascript面向对象之二 命名空间
2011/02/08 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
总结js函数相关知识点
2018/02/27 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
Python常用随机数与随机字符串方法实例
2015/04/09 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python中怎么表示空值
2020/06/19 Python
Python自省及反射原理实例详解
2020/07/06 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
教师党员承诺书
2014/03/25 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
小班教师个人总结
2015/02/05 职场文书