使用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 相关文章推荐
玩转CSS3色彩
Jan 16 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
Sep 15 HTML / CSS
鲜为人知的HTML5语音合成功能
May 17 HTML / CSS
html5 canvas 使用示例
Oct 22 HTML / CSS
html5之Canvas路径绘图、坐标变换应用实例
Dec 26 HTML / CSS
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
Jan 30 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
Nov 18 HTML / CSS
html5的canvas方法使用指南
Dec 15 HTML / CSS
用HTML5制作视频拼图的教程
May 13 HTML / CSS
Html5页面二次分享的实现
Jul 30 HTML / CSS
canvas实现二维码和图片合成的示例代码
Aug 01 HTML / CSS
HTML5录音实践总结(Preact)
May 07 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
php 错误处理经验分享
2011/10/11 PHP
php数组一对一替换实现代码
2012/08/31 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python多线程并发及测试框架案例
2019/10/15 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
教师自荐书
2013/10/08 职场文书
企划经理的岗位职责
2013/11/17 职场文书
环境卫生标语
2014/06/09 职场文书
民族学专业求职信
2014/07/28 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
申报优秀教师材料
2014/12/16 职场文书
元宵节寄语大全
2015/02/27 职场文书
结婚十年感言
2015/07/31 职场文书
《草船借箭》教学反思
2016/02/23 职场文书