CSS2.0实现面包屑

  面包屑这样的 我们以前都是用背景图片做这块工作,但是直到大概2个星期之前在新浪微博上看到用css3.0实现这样的面包屑 但是目前情况下IE6-8并不支持css3.0 只有标准游览器(像火狐 谷歌等支持)。由于有前一次总结一篇关于"CSS实现气泡框效果" 的文章 其中有关于怎么样实现小三角形的列子  所以感觉用那个小三角形可以正好模拟这块工作,所以也就试着做了一个。下面我们来看看面包屑大概是个什么样的效果!如下图:

 

  如上所示:

  思路:

  1. 页面有3个li li标签嵌套有2个标签 分别模拟2个小三角形 第一个就是白色背景那块 第二块就是和灰色背景重叠的那个小三角。

  HTML代码可以写成如下:

<div class="box">        <ul>           <li>gggg<em></em><i></i></li>           <li class="current">gggg<em></em><i></i></li>           <li>gggg<em></em><i></i></li>        </ul>     </div>

下面我们这个实例效果先放放 我们还是来复习下以前写的 "css实现气泡框效果" 中怎么样实现一个小三角形吧!

 比如页面有如下HTML代码:

 <div class="demo"></div>

 现在我想用css实现一个小三角形 我们现在该如何做?先不急 慢慢来 一步一步拆分。

 1. 首先我们来看看css border属性,当我们把一个div border-color设置成不同颜色时候,可以看到四边都成了矩形了。如下css代码

.demo {width:50px;height:50px;border-width:50px;border-style:solid;border-color:#CCC #00F #933 #0C9;}

如下图所示:

 

2.  如果我们继续把div的宽度和高度设为0的话 那么四边会成了三角形了。

   如下图所示:

  

  但是IE6下 上下是三角形 左右是矩形框:如下:

 

 通过实验发现当把div的font-size和line-height都设为0的时候,div的四边在IE6下都能形成完美的三角形:代码如下

.demo{width:0; height:0; border-width:50px; border-style:solid; border-color:#CCC #00F #933 #0C9;line-height:0;font-size:0;}

3.   很明白我们只需要一个三角形,那么我们只需要把其他三边颜色设置为透明或者设置为和背景颜色相同就可以制作出一个三角形出来了,将其他三边颜色设置为透明,即color的值为transparent,如果其他三边颜色跟页面背景一样,虽然视觉上只能看到一个三角,但背景颜色一旦改变,其他三边颜色也要随之改变。如下代码:

.demo{width:0; height:0; border-width:50px; border-style:solid; border-color:#CCC transparent transparent transparent;line-height:0;font-size:0;}

但是在IE6下 又有问题了 IE6不支持透明 transparent 如下:

 

  但通过实验发现把border-style设置为dashed后,IE6下其他三边就能透明了!如下:

 

现在小三角已经制作完毕!

    现在面包屑的小三角该怎么做?

    1. 首先我们看看HTML结构如下:

<div class="box">
       <ul>
          <li>gggg<em></em><i></i></li>
          <li class="current">gggg<em></em><i></i></li>
          <li>gggg<em></em><i></i></li>
       </ul>
    </div>

 那么正常的情况下 我们添加如下css样式

*{ margin:0; padding:0;}
ul,li{list-style:none;}
.box{position:relative;margin:100px auto;background:#ccc;width:600px;height:32px;line-height:32px;overflow:hidden;}
.box li{float:left;width:200px;text-align:center;position:relative;z-index:2;}

可以实现如下效果:

. 我们现在的问题是 我希望在每列右侧添加一个小三角形 背景为白色 覆盖到灰色背景上面去 所以我们可以在em标签上写css样式 制作小三角如上有怎么制作的 所以这里就不多说了. 代码如下:

.box li em{width:0;height:0;border-color:transparent transparent transparent #fff;border-style:dashed dashed dashed solid;border-width:24px 0 24px 24px;position:absolute;right:-24px;top:-8px;line-height:0;font-size:0;}

加上css代码后 效果图如下:

 

安照正常情况下 因为我是在每列右侧加一个小三角 且用了overflow:hidden 所以最后一个小三角没有了,但是在IE6,7下 最后一个也有小三角 所以我在最外层容器

.box{position:relative};加了一个相对定位 所以目前兼容IE6+ 火狐 谷歌等游览器。

3. 现在已经做成如上所示的样子 我们离我们想要的效果还没有完成 所以我们现在还需要在li标签上 需要再做个小三角形 背景为灰色 覆盖到上面去 CSS代码如下:

.box li i{width:0;height:0;border-color:transparent transparent transparent #ccc;border-style:dashed dashed dashed solid;border-width:16px 0 16px 16px;position:absolute;right:-16px;top:0;line-height:0;font-size:0;}

4. 但是由于当前有选中的状态 所以还要把current样式加上 如下:

.box li.current{background:#933;z-index:1;}
.box li.current i{border-color:transparent transparent transparent #933;}
 

现在一切都完成了 效果如下:

现在把所有代码综合下:

HTML代码如下:

<div class="box">
       <ul>
          <li>gggg<em></em><i></i></li>
          <li class="current">gggg<em></em><i></i></li>
          <li>gggg<em></em><i></i></li>
       </ul>
</div>

CSS代码如下:

*{ margin:0; padding:0;}
ul,li{list-style:none;}
.box{position:relative;margin:100px auto;background:#ccc;width:600px;height:32px;line-height:32px;overflow:hidden;}
.box li{float:left;width:200px;text-align:center;position:relative;z-index:2;}
.box li em{width:0;height:0;border-color:transparent transparent transparent #fff;border-style:dashed dashed dashed solid;border-width:24px 0 24px 24px;position:absolute;right:-24px;top:-8px;line-height:0;font-size:0;}
.box li i{width:0;height:0;border-color:transparent transparent transparent #ccc;border-style:dashed dashed dashed solid;border-width:16px 0 16px 16px;position:absolute;right:-16px;top:0;line-height:0;font-size:0;}
.box li.current{background:#933;z-index:1;}
.box li.current i{border-color:transparent transparent transparent #933;}

页面已完成 如有不足之处 请留言!谢谢!!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索line-height
, dash
, px
, 三角形
, 一个
, 三角
, transparent
, OpenGLES2.0三角形
, 禁用Transparent
, 下三角
小三角指引
css 面包屑、css面包屑导航代码、css3 面包屑、css3扁平化面包屑导航、div css 面包屑,以便于您获取更多的相关知识。

时间: 2024-10-30 20:16:46

CSS2.0实现面包屑的相关文章

CSS3实例代码:兼容多浏览器的面包屑

文章简介:兼容多浏览器的面包屑. 面包屑是Web中常见的一个元件,早前在<CSS3制作Breadcrumbs>和案例<css3面包屑设计>使用CSS3制作了各式各样的面包屑效果,今天使用上原始的CSS配合一定的标签制作了一款兼容多浏览器的面包屑案例,感兴趣的可以看看: HTML <ul class="clearfix">  <li>面包屑一<em></em><i></i></li>

CSS 面包屑导航栏2个例子

  方法一, 说明:本方法使用CSS3,无图片,兼容各种webkit系浏览器,同时兼容IE8+.先上图: 1.首先是HTML代码,比较简单,只需要一个简单的ul和li即可  代码如下   <div id="crumbs"> <ul>  <li><a href="#">首页</a></li>  <li><a href="#">目录</a>&l

Bootstrap &lt;基础十八&gt;面包屑导航(Breadcrumbs)

原文:Bootstrap <基础十八>面包屑导航(Breadcrumbs) 面包屑导航(Breadcrumbs)是一种基于网站层次信息的显示方式.以博客为例,面包屑导航可以显示发布日期.类别或标签.它们表示当前页面在导航层次结构内的位置. Bootstrap 中的面包屑导航(Breadcrumbs)是一个简单的带有 .breadcrumb class 的无序列表.分隔符会通过 CSS(bootstrap.min.css)中下面所示的 class 自动被添加: .breadcrumb >

php可应用于面包屑导航的递归寻找家谱树实现方法_php技巧

本文实例讲述了php可应用于面包屑导航的递归寻找家谱树实现方法.分享给大家供大家参考.具体实现方法如下: <?php echo "<pre>"; $area = array( array('id'=>1,'area'=>'北京','pid'=>0), array('id'=>2,'area'=>'广西','pid'=>0), array('id'=>3,'area'=>'广东','pid'=>0), array('

CSS3面包屑导航和多步骤向导效果

面包屑是用来做当前页面所在的站点位置的导航作用,它一层层的表示站点分类或目录层级关系,而多步骤指示经常用在一些分步流程向导的应用,如分步注册向导,货物订购流程.今天我们来用CSS制作面包屑和多步骤指示的应用.   HTML结构非常简单,一个有序列表ol,外面又<nav>包裹. 面包屑导航条的结构,我们给ol加上class样式为:.cd-breadcrumb,那么当前位置的层级li加上class样式为:.current. <nav>     <ol class="cd

php可应用于面包屑导航的迭代寻找家谱树实现方法_php技巧

本文实例讲述了php可应用于面包屑导航的迭代寻找家谱树实现方法.分享给大家供大家参考.具体实现方法如下: <?php echo "<pre>"; $area = array( array('id'=>1,'area'=>'北京','pid'=>0), array('id'=>2,'area'=>'广西','pid'=>0), array('id'=>3,'area'=>'广东','pid'=>0), array('

Bootstrap组件学习之导航、标签、面包屑导航(精品)_javascript技巧

导航 Bootstrap中可用的导航有相似的标记,用基类.nav开头,这是相似的部分.改变修饰类可以改变样式. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <!-- <link rel="stylesheet" >--> <link rel="stylesheet" href="css/bootst

去除DEDECMS“面包屑”导航最后一个&gt;符号

去除DEDE"面包屑"导航最后一个>符号 符号' /> 有时候我们做模版改版的时候,这个"小符号"的出现有点不太"雅观": 于是,今天刚好遇到,就发出来和大家分享分享:   其实要去掉不难,就是一句话的事情: 打开include目录下的typelink.class.php文件 搜索 1 $this->valuePosition = $this->GetOneTypeLink($this->TypeInfos); 2

Magento 修正来自首页的产品页面包屑导航

修正的方法,找到文件app/code/core/Mage/Catalog/Helper/Data.php 复制一份到local代码池 app/code/local/Mage/Catalog/Helper/Data.php 在函数getBreadcrumbPath的开始部分,加上如下的代码逻辑:    代码如下 复制代码 getBreadcrumbPath()     {         if (!$this->_categoryPath) {             $path = array(