1)先完成一个导航条

<style type="text/css">
.nav-ul{
list-style: none;
}
.nav-ul li{
width: 100px;
height: 40px;
border:1px solid #000;
float: left;
margin-right: 10px;
text-align: center;
line-height: 40px;
}
</style> <div class="nav">
<ul class="nav-ul">
<li>nav1</li>
<li>nav2</li>
<li>nav3</li>
</ul>
</div>

效果如下:

2)在每个导航的最右侧做一个  下三角,考虑到代码的简洁性,每个导航条的最右侧加一个伪元素,这个伪元素需要绝对定位,所以li元素需要加上相对定位。

3)那么三角具体怎么做呢?用css,这里用到了border这个属性,当把一个块元素的高和宽都设置为0后,元素是不可见的,而当加上border边框后,元素会有区域了。比如

.template{
width: 0;
height: 0;
border: 50px solid ;
border-color: #000 #FF0000 #FFFF00 #00FFFF;
} <div class="template"></div>

4)要是我们把除了上部,其余三块border的颜色都设置为透明的了,是否就会只显示上部了?

5)继续3)中伪类的编写,

<style type="text/css">
.nav-ul{
list-style: none;
}
.nav-ul li{
position: relative;
width: 100px;
height: 40px;
border:1px solid #000;
float: left;
margin-right: 10px;
text-align: center;
line-height: 40px;
}
.nav-ul li:after{
width: 0px;
height: 0px;
content: "";
display: block;
position: absolute;
right: 10px;
top: 40%;
border: 10px solid ;
border-color: green transparent transparent transparent ;
}
</style>

6)点击导航条 三角的形状,拉出下拉菜单,然后三角形变为上三角,这里需要点击事件,在点击的导航条上加一个class,class的伪元素是下三角,下三角根据上面的方法,只要将除了下部,其他三部分的颜色设置为透明

的即可。

.nav-ul li.active:after{
width: 0px;
height: 0px;
content: "";
display: block;
position: absolute;
right: 10px;
top: 16%
border: 10px solid ;
border-color: transparent transparent green transparent ;
}
<div class="nav">
<ul class="nav-ul">
<li class="active">nav1</li>
<li>nav2</li>
<li>nav3</li>
</ul>
</div>

css制作导航栏的上下三角的更多相关文章

  1. 第8天:CSS制作导航栏

    今天主要学习了网页导航栏的制作.注意:引入外部CSS样式时,如果使用background:url(../images/1.png),一定记得用..跳出当前文件夹,回到上级目录. 一.导航栏实现步骤: ...

  2. CSS制作导航栏

    最终效果: 代码: <!DOCTYPE html> <html> <head> <title>#练习册二</title> <style ...

  3. 巧妙使用checkbox制作纯css动态导航栏

    前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...

  4. 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. html css二级导航栏

    二级导航栏制作: 1.将一级导航栏去除列表样式(list-style:none),并给予浮动,使其横向排列(float:left) 2.给每个li中添加一个<a></a>标签, ...

  6. css3制作导航栏

    <!doctype html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. C3制作导航栏分割线及立体风格

    //首先写一个导航栏样式 .nav{    width:560px;    height: 50px;    font:bold 0/50px Arial;    text-align:center; ...

  8. Css之导航栏学习

    Css: ul { list-style-type:none; margin:; padding:; overflow:hidden; background-color:blue; /*固定在顶部*/ ...

  9. CSS 笔记——导航栏、下拉菜单、提示工具

    8. 导航栏.下拉菜单.提示工具 (1)导航栏 垂直导航栏 <!DOCTYPE html> <html lang="en"> <head> &l ...

随机推荐

  1. Golang全接触

    满打满算, 从好友推荐Golang至发文时, 使用Golang已经有1年多了. 这种时间对于C/C++ Java这些老者来说, 简直是菜鸟级别的经验 但作为新生代语言的特点就是实战. Golang这一 ...

  2. 带圆角的EditText

    转载请注明出处:http://blog.csdn.net/krislight/article 1.定义一个Drawable <?xml version="1.0" encod ...

  3. kernel 校验和实现

    kernel 校验和实现 Kernel checksum implementation ) TCP包的错误检测使用16位累加和校验. 除了TCP包本身, TCP校验数据块还包括源IP地址,目的IP地址 ...

  4. 动态规划(计数DP):HDU 5136 Yue Fei's Battle

    Yue Fei's Battle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Other ...

  5. Mockito测试

    Mockito 一 mockito基本概念 Mock测试是单元测试的重要方法之一,而Mockito作为一个流行的Mock框架,简单易学,且有非常简洁的API,测试代码的可读性很高. Mock测试就是在 ...

  6. linux 创建连接命令 ln -s 软连接

    这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同 ...

  7. PHP判断变量是否为长整形的方法

    PHP判断变量是否为长整形的方法,可用于判断QQ号等,避免了int溢出的问题 <?php /** * 判断变量是否为长整数(int与整数float) * @param mixed $var * ...

  8. Java或web中解决所有路径问题

    Java开发中使用的路径,分为两种:绝对路径和相对路径.归根结底,Java本质上只能使用绝对路径来寻找资源.所有的相对路径寻找资源的方法,都不过是一些便利方法.不过是API在底层帮助我们构建了绝对路径 ...

  9. springMVC零配置吐槽

    此时此刻,哥哥我不得不大大的吐槽一下.从github上down下来一个spring-mvc的chat演示样例,牛逼作者用的是注解的方式,项目全然零配置.而我眼下用的springMVC框架,还是在xml ...

  10. 二维码URL自己主动辨别Android和ISO设备,以便扫码后倒入不同的下载链接

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...