CSS3实现三角形

很多时候我们用到三角形这个效果:

  我们可以用CSS3实现这个效果,怎去做呢?先阐述一下原理,我们定义一个空的div,设置这个div宽高为0,给这个div加上一个100px边框(这里是方便观察),得到的是一个正方形,颜色和定义边框的颜色相同,我们看到正方形其实是这个div边框。

<div id="d1"></div>

style:
#d1{
width:0;
height:0;
border:100px solid red;
}

实现效果:

CSS3实现三角形

那么这个元素现在对应的每个边框是什么样子的呢?我们来看:

CSS3实现三角形

对应代码:

<div id="d1"></div>

style:
#d1{
width:0;
height:0;
border-width:50px;
border-style:solid;
border-color:red blue black yellow;
             上  右   下   左
}

从上面这个我们发现,其实这个宽高为0的div的每一条边框都是一个三角形,实际操作中我们可能只需要一个三角形,那我们只要把不需要的border隐藏就可以了(用transparent属性):

比如我要一个向下的三角形:

CSS3实现三角形

对应代码:

<div id="d1"></div>

style:
#d1{
width:0;
height:0;
border-width:50px;
border-style:solid;
border-color:red transparent transparent transparent;
             上   右      下      左
}

由此可以看出只是把对应border隐藏掉了,对应的border—color顺序为:

border-color:上  右  下  左; 每个颜色之间用空格隔开。

一个45度三角形:

CSS3实现三角形CSS3实现三角形

对应代码:

<div id="d1"></div>

style:
#d1{
width:0;
height:0;
border-width:50px;
border-style:solid;
border-color:transparent transparent red red ;
     border-color:transparent transparent red blue ;
}

同时我们可以调整对应border的宽度来调整三角形的形状:

CSS3实现三角形  CSS3实现三角形

对应代码:

  我们这里修改了下方border的宽度

<div id="d1"></div>
style:
#d1{
width:0;
height:0;
border-width:50px;
border-bottom-width:150px;
border-style:solid;
border-color:transparent transparent red transparent;
border-color:blue green red black;
}

同时我们也可以绘制一个圆角三角形:

CSS3实现三角形

对应代码:

这里为了看起来舒服些,加了透明度属性;

<div id="d1"></div>
style:
#d1{
width:0;
height:0;
border-width:50px;
border-style:solid;
border-top-left-radius: 15px;
opacity: 0.569;
border-color:red transparent transparent red;
}

关于三角形的制作基本就这些,很多时候配合伪类before、after使用会有意想不到的效果:

比如这个我自己编写的登录窗口的标签:

CSS3实现三角形

CSS3实现三角形
上一篇:RMQ(范围最值问题)算法学习


下一篇:C#中结构的使用