CSS学习笔记六:写原生导航栏
因为刚开始学习CSS时,只了解了一些基本样式,然后就跑去学习bootstrap。bootstrap是个不错的东西,挺好玩,起码让你写界面写的轻轻松松,几行引入代码,再来个复制粘贴就解决了,而且bootstrap在菜鸟教程中有拖拉拽就能做成界面,这就好比写myeclipes 的图形界面,贼儿溜方便。但现在得空了,我想还是要好好学习下如何修建导航栏出来,从最基本的属性出发,一点一点构建原生导航栏。本次写的是侧拉导航栏和下拉导航栏,这两样在网站都比较常见。
1、确定你所要写导航栏有几种类型,一般情况下会有几种属性【首页、精品区、折扣区、限时区】,导航栏都是用来区分类型,让人快速找到自己想要的。比如我写的关于零食,就列了一下几种分类【鲜果杂志、缤纷闲时、乐趣妙享】等三类。然后就开始再HTML中写上你需要的类型。
首先需要有个大容器将整个导航栏装入,然后开始分块,用ul来将属性一个一个装入,部分有下拉的元素就要添加一个容器块给它存储,按照不同级别写CSS。
<div class="container">
<ul class="list">
<li><a href="">目录</a>
</li>
<li>
<a href="">鲜果杂志</a>
<div class="down">
<a href="">apple</a>
<a href="">orange</a>
<a href="">watermelen</a>
<a href="">pear</a>
</div>
</li>
<li>
<a href="">缤纷闲时</a>
<div class="down">
<a href="">tudou</a>
<a href="">huasheng</a>
</div>
</li>
<li>
<a href="">乐趣妙享</a>
<div class="down">
<a href="">doudou</a>
</div>
</li>
</ul> </div>
2、进入编写CSS属性值,作为一个横向的侧拉导航栏,那么它所有的元素便是要竖着摆放,这就要求它的高度height要大,要能够给每一行的类型一个固定值,然后它的总容器高度就是每一行的总和。
.container{
margin-left: 100px;
margin-top:100px;
width: 100px;
height: 160px;
/* background-color: #222; */
background-image: url(2.jpg);
}
.container .list{
margin: 0 auto;
height: 40px; }
.list li{
position: relative; }
.list li>a{
padding: 20px 5px;
line-height: 40px;
font-size: 16px;
color: #aaa; }
可以看到我给每一行设置了40PX,然后总的高度我给设置了160PX,li>a 是指在 li 下的 a都要遵照这个样式拜访。
3、设置一个属性下拉或者下拉,事实上侧拉或者下拉过程是将本来隐藏的块经由事件触发然后然后显示出来,从displace:none变成displace:block的过程;可以看到 .list li .down 中的属性 与 .list li:hover .down 中的区别
.list li:hover .down{
display: block;
}
.list li .down{
position: absolute;
left: 100px;
top: 0px;
width: 400px;
background:url(2.jpg) no-repeat 5px 5px;
display: none;
}
.list li .down>a{
color: #aaa;
font-size: 14px;
line-height: 40px;
padding-left: 30px;
/* width: 400px;*/
display: inline-grid;
}
.list li .down a:hover{
color: #222;
}
4、下拉导航栏跟侧拉导航栏的区别在于前者将隐藏的东西放在下面,而后者的是将隐藏块放在旁边。上面为下拉导航栏的宽高,下面为侧拉导航栏。
.nav_body li .nav_list{
width: 90px;
height: 90px;
background:url(2.jpg) no-repeat 5px 5px;
position: relative;
left: 55px;
display: none; } .list li .down{
position: absolute;
left: 100px;
top: 0px;
width: 400px;
background:url(2.jpg) no-repeat 5px 5px;
display: none;
导航栏完成效果图
最后附加炸弹一枚
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>侧向导航栏</title>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript" src="hello.js"></script>
<link rel="stylesheet" type="text/css" href="hello.css">
</head>
<body>
<div class="container">
<ul class="list">
<li><a href="">目录</a>
</li>
<li>
<a href="">鲜果杂志</a>
<div class="down">
<a href="">apple</a>
<a href="">orange</a>
<a href="">watermelen</a>
<a href="">pear</a>
</div>
</li>
<li>
<a href="">缤纷闲时</a>
<div class="down">
<a href="">tudou</a>
<a href="">huasheng</a>
</div>
</li>
<li>
<a href="">乐趣妙享</a>
<div class="down">
<a href="">doudou</a>
</div>
</li>
</ul> </div>
<div class="nav">
<ul class="nav_body">
<li>
<a href="">首页</a>
</li>
<li>
<a href="">鲜果杂志</a>
<div class="nav_list">
<a href="">apple</a>
<a href="">orange</a>
<a href="">watermelen</a>
<a href="">pear</a>
</div>
</li>
<li>
<a href="">缤纷闲时</a>
<div class="nav_list">
<a href="">tudou</a>
<a href="">huasheng</a>
<a href="">digua</a>
<a href="">sweet</a>
</div>
</li>
<li>
<a href="">乐趣妙享</a>
<div class="nav_list">
<a href="">doudou</a>
<a href="">minner</a>
<a href="">cucumber</a>
<a href="">tomato</a>
</div>
</li> </ul> </div> </body>
</html>
炸弹1-1
*{
margin: 0;
padding: 0;
}
li{
list-style: none;
}
a{
text-decoration: none;
}
.nav{
margin-top: 50px;
width: 100%;
height: 40px;
background-image: url(2.jpg);
}
.nav .nav_body{
margin: 0 auto;
height: 40px;
}
.nav_body li{
display: inline-block;
vertical-align:top;
/*replace float left*/ }
.nav_body li>a{
margin-left:50px;
padding: 0 10px;
line-height: 40px;
font-size: 16px;
color: #aaa;
}
.nav_body li:hover >a{
color: #222;
}
.nav_body li .nav_list{
width: 90px;
height: 90px;
background:url(2.jpg) no-repeat 5px 5px;
position: relative;
left: 55px;
display: none; }
.nav_body li:hover .nav_list{
display: block;
transition: transfrom 2s ease-in;
}
.nav_body li .nav_list >a{
padding: 10px 5px;
color: #aaa;
line-height:40px
font-size:14px; }
.nav_body li .nav_list >a:hover{
color: #222; } .container{
margin-left: 100px;
margin-top:100px;
width: 100px;
height: 160px;
/* background-color: #222; */
background-image: url(2.jpg);
}
.container .list{
margin: 0 auto;
height: 40px; }
.list li{
position: relative; }
.list li>a{
padding: 20px 5px;
line-height: 40px;
font-size: 16px;
color: #aaa; }
.list li:hover >a{
color: #222;
}
.list li:hover .down{
display: block;
}
.list li .down{
position: absolute;
left: 100px;
top: 0px;
width: 400px;
background:url(2.jpg) no-repeat 5px 5px;
display: none;
}
.list li .down>a{
color: #aaa;
font-size: 14px;
line-height: 40px;
padding-left: 30px;
/* width: 400px;*/
display: inline-grid;
}
.list li .down a:hover{
color: #222;
}
炸弹1-2
CSS学习笔记六:写原生导航栏的更多相关文章
- Android学习笔记- Fragment实例 底部导航栏的实现
1.要实现的效果图以及工程目录结构: 先看看效果图吧: 接着看看我们的工程的目录结构: 2.实现流程: Step 1:写下底部选项的一些资源文件 我们从图上可以看到,我们底部的每一项点击的时候都有不同 ...
- CSS学习笔记(5)--导航ul,li浮动问题
为什么只给li设置浮动,没有给ul设置浮动,ul后的元素div也会跟着浮动? 添加评论 分享 默认排序按时间排序 3 个回答 张思远 程序员 2 人赞同 代码是不是这样的啊?<ul& ...
- CSS学习笔记-04 a标签-导航练习
个人练习,各位大神勿笑 .. <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- Bootstrap学习笔记(4)--导航栏
相关类: nav, nav-pills, nav-tags, nav-stacked ul里使用,导航格胶囊,方片外观,堆叠外观 navbar, navbar-header, navbar-brand ...
- 04 uni-app框架学习:禁用顶部原生导航栏
1.在pages.json中配置 比如要首页禁用 就在首页这个选项里 加上这几句代码 2.效果如下
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- CSS学习笔记之基本介绍
1.简介 层叠样式表(Cascading Style Sheets,CSS)允许我们把样式设置存储在文件中,从而将内容与表现分离 当同一个 HTML 元素被不只一个样式定义时,最终的样式确定顺序如下( ...
- css学习笔记四
广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作( ...
随机推荐
- javascript概要学习
Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为 ...
- Linux grep命令分析以及C语言版本的实现
1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...
- 在Cocos2D中改变动态物体为静态物体
原文链接,有压缩和简化 1.导入一个新的头文件 首先你要知道,不是所有Chimpunk特性都通过Cocos2d的类暴露出来,比如CCPhysicsNode和CCPhysicsBody.对于一些更高级的 ...
- Android下VideoView的研究
VideoView继承自SurfaceView,实现了MediaController.MediaPlayerControl的接口.在android系统中的包名为android.widget.Video ...
- Cocos2D中的ObjectAL简介
Cocos2D包含ObjectAL音频库,可以回放音效和音乐. ObjectAL是一个建立在低级别OpenAL API上的库.OpenAL最擅长被用来播放短的音效(.wav,.caf,.aiff),并 ...
- C++容器学习,与结构体排序和set来一场邂逅
最近学习C++容器,积累一下.下面介绍set和multiset,并使用sort对结构体进行排序.C++之路漫漫其修远兮! 一.对结构体进行排序 // sort_struct.cpp : 定义控制台应用 ...
- JAVA中重写equals()方法的同时要重写hashcode()方法
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...
- Java I/O最简单的几个类
今天把I/O中最简单的几个类整理了一下,之所以整理最简单的,是因为这样会让我更加快速方便的理顺这里面的东西,以前每一次用的时候都要先百度一下,觉得很烦. 首先需要先看一下Read,Write和Stre ...
- iOS开发常用第三方库
UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...
- iOS解决UITableView中Cell重用带来的问题
tableView的常规配置,当超出一屏的cell就会标上可重用的标识出列到可重用缓存池中,后面再根据可重用标识来到的可重的cell就会和前面显示同样内容. - (UITableViewCell *) ...