今天主要利用hover选择器。鼠标滑过查看效果。

一。普通导航栏

  • Home
  • Content
  • Service
  • Team
  • Contact

对于这种普通的导航栏,只是鼠标滑过的时候颜色会变,所以思路变得很简单。

(1)使用ul标签布局

(2)鼠标经过事件

<div id="demo1">
<ul>
<li>Home</li>
<li>Content</li>
<li>Service</li>
<li>Team</li>
<li>Contact</li>
</ul>
</div>
*{
padding:;
margin:;
list-style:none;
text-decoration:none;
}
a{
color:#fff;
}
#demo1{
width:600px;
}
#demo1 ul li{
float:left;
width:100px;
height:50px;
text-align:center;
background:#ccc;
line-height:50px;
color:#FFF;
}
#demo1 ul li:hover{
background:#999;
}

(二)括号类导航栏

对于导航栏的排版这里就不多说了,可以看到当鼠标经过的时候会从文字中出现括号,思路:

(1)当无鼠标经过事件时,括号其实是有的,只不多它处于隐形状态在文字中间

(2)当鼠标经过时,括号从中间移动到两边,并且从隐形变为显示。

 <div id="demo2">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Content</a></li>
<li><a href="#">Service</a></li>
<li><a href="#">Team</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
#demo2{
width:600px;
height:50px;
margin:20px auto;
}
#demo2 ul li{
position:relative;
float:left;
width:100px;
height:50px;
text-align:center;
line-height:50px;
background:#000;
}
#demo2 ul li a:before{
content:"[";
margin-right:10px;
transform:translateX(20px);
-webkit-transform:translateX(20px);
-moz-transform:translateX(20px);
-ms-transform:translateX(20px); }
#demo2 ul li a:after{
content:"]";
margin-left:10px;
transform:translateX(-20px);
-webkit-transform:translateX(-20px);
-moz-transform:translateX(-20px);
-ms-transform:translateX(-20px);
}
#demo2 ul li a:before,#demo2 ul li a:after{
display:inline-block;
opacity:;
transition:transform 0.3s, opacity 0.2s;
-moz-transition:transform 0.3s, opacity 0.2s;
-webkit-transition:transform 0.3s, opacity 0.2s;
-ms-transition:transform 0.3s, opacity 0.2s;
}
#demo2 ul li a:hover::before,#demo2 ul li a:hover::after,#demo2 ul li a:focus::before,#demo2 ul li a:focus::after {
opacity:;
-webkit-transform: translateX(0px);
-moz-transform: translateX(0px);
transform: translateX(0px);
}

三。滑动导航栏

从演示效果来看要注意两点

(1)鼠标经过时有横向从上到下

(2)鼠标经过时文字从上到下并且变换颜色

这就和上一个例子很像了

(1)横线其实是存在的,只不过鼠标没有经过时是在文字上方且透明的,鼠标经过时横线由上到下。

(2)文字这里就要定义一个动画了,因为在鼠标经过时它体现了三种状态:

  ①文字从现位置划下

  ②文字从出现在上方

  ③文字从上方滑到现位置

 <div id="demo3">
<ul>
<li><a href="#"><span>Home</span></a></li>
<li><a href="#"><span>Content</span></a></li>
<li><a href="#"><span>Service</span></a></li>
<li><a href="#"><span>Team</span></a></li>
<li><a href="#"><span>Contact</span></a></li>
</ul>
</div>
#demo3 ul li{
float:left;
margin:0 25px;
position:relative;
}
#demo3 ul li a{
color:#D8761E;
font-family:'Righteous', cursive;
display:block;
padding:10px 0;
}
#demo3 ul li span{
display:block;
}
#demo3 ul li a:before{
content:"";
position:absolute;
width:100%;
height:3px;
background:#D8761E;
bottom:;
opacity:;
-webkit-transform: translate3d(0, -40px, 0);
transform: translate3d(0, -40px, 0);
-webkit-transition: -webkit-transform 0s 0.3s, opacity 0.2s;
transition: transform 0s 0.3s, opacity 0.2s;
}
#demo3 ul li a:hover::before{
opacity:;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transition: -webkit-transform 0.5s, opacity 0.1s;
transition: transform 0.5s, opacity 0.1s;
-webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
#demo3 ul li a:hover span{
color:#510301;
-webkit-animation: anim-francisco 0.3s forwards;
animation: anim-francisco 0.3s forwards;
}
@-webkit-keyframes anim-francisco {
50% {
opacity:;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
} 51% {
opacity:;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
} 100% {
opacity:;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
} @keyframes anim-francisco {
50% {
opacity:;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
} 51% {
opacity:;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
} 100% {
opacity:;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
}

这里注意的是不能给标签设置宽高,因为一旦设置宽高会影响文字滑动路线,变得很夸张。这里加span也是这个原因,鼠标经过a时让span以a为参照进行滑动。

里面的标签就不解释了,自己查效果会更好哦。

我好无奈呀,用这个显示效果a标签和li的默认样式竟然不能取消,谁能告诉我为什么/(ㄒoㄒ)/~~  不过自己编译的话在浏览器里是正常的

css3制作炫酷导航栏效果的更多相关文章

  1. css3 之炫酷的loading效果

    css3 之炫酷的loading效果 今天实现了一个炫酷的loading效果,基本全用css来实现,主要练习一下css3的熟练运用 js需要引入jquery 只用到了一点点js 先看效果图 html: ...

  2. css3实现炫酷的文字效果_空心/立体/发光/彩色/浮雕/纹理等文字特效

    这篇文章主要整理一些css3实现的一些文字特效,分享给大家, 相信您看完会有不少的收货哦! 一.css3 空心文字 <style> .hollow{ -webkit-text-stroke ...

  3. 简单使用CSS3实现炫酷读者墙效果

    读者墙,在很多网站上都有,没有遇到过的,可以参考度娘:读者墙http://www.baidu.com/s?wd=%B6%C1%D5%DF%C7%BD 使用基础的Html和CSS写出雏形 需要一提的是头 ...

  4. 简单CSS3实现炫酷读者墙

    如题,给大家介绍和讲解几个常用的CSS3属性,并用到实处. 先看demo(请使用Chrome或者Firefox浏览,IE的靠边): 点此查看实例 觉得爽的可以继续阅读下面的知识点,感觉不爽的可绕行. ...

  5. css制作最简单导航栏

    css制作最简单导航栏

  6. 【分享】纯jQuery实现星巴克官网导航栏效果

    前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...

  7. 移动端如何用swiper实现导航栏效果

    在移动端如何用swiper实现导航栏效果 我们在写移动端的时候会有滑动和点击导航后滑动到目标页面功能:而这个功能如果自己写的话会很麻烦,所以我在这推荐一下swiper这个插件. 其实swiper中的官 ...

  8. 【方法】纯jQuery实现星巴克官网导航栏效果

    前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...

  9. 一个炫酷的Actionbar效果

    今天在网上看到一个炫酷的Actionbar效果,一个老外做的DEMO,目前很多流行的app已经加入了这个效果. 当用户初始进入该界面的时候,为一个透明的 ActiionBar ,这样利用充分的空间显示 ...

随机推荐

  1. swift开发新项目总结

    新项目用swift3.0开发,现在基本一个月,来总结一下遇到的问题及解决方案   1,在确定新项目用swift后,第一个考虑的问题是用纯swift呢?还是用swift跟OC混编      考虑到新项目 ...

  2. ionic第一坑——ion-slide-box坑(ion-slide分两页的坑)

    ionic.views.Slider = ionic.views.View.inherit({ initialize: function (options) { . . . function setu ...

  3. Configure a bridged network interface for KVM using RHEL 5.4 or later?

    environment Red Hat Enterprise Linux 5.4 or later Red Hat Enterprise Linux 6.0 or later KVM virtual ...

  4. JavaScript 写计算器改进版

    <html><head><style> .short{height:50px;width:55px;float:left;}</style></h ...

  5. 自制Azure中国版“加血包”

    Micrsoft Azure中国版的国际出口最近升级为电话线拨号模式,目测为10个用户共享一条56kb的电话线拨号链路.有图有真相: 中国的IT从业者,有三分之一的职业生涯时间是在跟网络斗智斗勇.这点 ...

  6. 【AI开发第一步】微软认知服务API应用

    目录 介绍 API分类 使用‘视觉’API完成的Demo 点击直接看干货 介绍 从3月份Google家的阿尔法狗打败韩国围棋冠军选手李世石,到之后微软Build2016大会宣布的“智能机器人”战略.种 ...

  7. 领域驱动设计实战—基于DDDLite的权限管理OpenAuth.net

    在园子里面,搜索一下“权限管理”至少能得到上千条的有效记录.记得刚开始工作的时候,写个通用的权限系统一直是自己的一个梦想.中间因为工作忙(其实就是懒!)等原因,被无限期搁置了.最近想想,自己写东西时, ...

  8. 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)

    基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器或 ...

  9. CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

    CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...

  10. Java模块化规范之争(转载)

    经过近20年的发展,Java语言已成为今日世界上最成功.使用的开发者人数最多的语言之一,Java世界中无数商业的或开源的组织.技术和产品共同构成了一个无比庞大的生态系统. 与大多数开发人员的普遍认知不 ...