首页 > Web开发 > 详细

使用Css和Div ”画“个三角形

时间:2014-01-21 19:16:53      阅读:513      评论:0      收藏:0      [点我收藏+]

bubuko.com,布布扣

看到这个导航的时候就在想这种三角是否可以通过css和html实现,于是就在网上找了找资料。整理如下:
1.思路很简单。看下面的图片(每条边是不是像三角形的底边)

bubuko.com,布布扣

html:

<div class="triangle"></div>

Css:

bubuko.com,布布扣
         
   .triangle{   
            border-style:solid;
            border-width: 10px;
            border-top-color:#009246;
            border-left-color: #CE2B37;
            border-bottom-color:#5E5E5E;
            border-right-color: #000;
 }
bubuko.com,布布扣

2. 当div元素的宽度和高度是0的时候是什么样呢(其他属性不变,把width和height都设置为0)?
bubuko.com,布布扣

是不是每条边都是一个三角形了?

如果想让他大点,就把border-width属性值设置的大点。

3. 假如我们想要一个向上的三角形,那我们不要显示其他三个边,保留底边(border-bottom)就可以了。所以把其他三条边的(border-color)设置成transparent好了,再看效果。
bubuko.com,布布扣

三角形就出来了。

 

如果想要调整三角形的位置,可以通过设置div.triangle{position:relative; top:0;right:10px;}的属性来设置了。

 

最后是这个结果:

bubuko.com,布布扣

代码如下:

bubuko.com,布布扣
<!--html-->
<div class="triangle"></div>
<div class="drop-down">呵呵,把这个div放到三角div后面,背景色和那个border-color颜色设置成一样就好了</div>
bubuko.com,布布扣

 

bubuko.com,布布扣
/*Css*/
       .triangle{
            width:0px;
            height:0px;
            border-style:solid;
            border-width: 10px;
            border-color:transparent;
            border-bottom-color:#5E5E5E;
            position:relative;
            top:0;
            left:20px;
        }
        .drop-down{
            width:150px;
            padding:10px;
            border-radius:5px;
            background:#5E5E5E;
            color:white;
        }
bubuko.com,布布扣

 

延伸:如果使用伪元素:before 和:after呢,这样就不必搞一个空白的div元素了(原理自然和上面使用空白div是一样的)。

如果箭头在上面和左侧,就用:before;右侧和下面,就用:after 吧。

bubuko.com,布布扣

<!--html-->
<div class="no-empty-div">我们不需要空白的div来实现箭头了</div>
bubuko.com,布布扣
/*Css*/
        .no-empty-div{
            width:150px;
            padding:10px;
            border-radius:5px;
            background:#5E5E5E;
            position:relative;
} .no-empty-div:before{ content:""; display: block; border-color: transparent; border-bottom-color: #5E5E5E; border-width: 10px; border-style:solid; width:0; height:0; position:absolute; bottom:100%; right:50%; }
bubuko.com,布布扣

 下面是一个向左箭头的(你可以和向上的代码对照看一下位置的改变):

bubuko.com,布布扣

<!--html-->
<div class="no-empty-div">我们不需要空白的div来实现箭头了</div>
bubuko.com,布布扣
/*Css*/
  .no-empty-div{
            width:150px;
            padding:10px;
            border-radius:5px;
            background:#5E5E5E;
            position:relative;
        }
        .no-empty-div:before{
            content:"";
            display: block;
            border-color: transparent;
            border-right-color: #5E5E5E;
            border-width: 10px;
            border-style:solid;
            width:0;
            height:0;
            position:absolute;
            top:20%;
            right:100%;
        }
bubuko.com,布布扣

使用Css和Div ”画“个三角形

原文:http://www.cnblogs.com/stoprunning3/p/3528154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!