用纯CSS创建一个三角形

以前用过css3画过下拉菜单里文字后面的“下拉三角符号”,类似于下面这张图片文字后面三角符号的效果

下面是一个很简单的向上的三角形代码 

1

2

3

4

5

6

7

#triangle-up {

    width0;

    height0;

    border-left50px solid transparent;

    border-right50px solid transparent;

    border-bottom100px solid blue;

}

再给相应的div加上对应的class,一个如下的三角形就用css画好了

   

 

当时也尝试去理解为什么三角形的代码是要这样去写,但是没有看明白。后来也就搁着不了了之了。这是之前一个偶然的机会我有接触到了这个利用css3画三角形的知识,于是就决定好好研究了一番其原理,经过一番尝试,终于搞清楚了其内部的原理,其实很简单,下面就开始说其原理。

先来看一下我们的预备知识

当我们设置一个div其width与height为100px,并且设置其四边框的宽度为100px,且分别设置其颜色后,我们可以看到如下的一张图片

 

 

此时如果设置这个div的height为0的话,其他不变,会得到下面这个图形

 

 

下面把其宽度也设置为0后,得到如下的一张图片

所以这就是我们把width,height设置为0后得到的效果,是不是出乎意料的竟然有点好看。。好了接下来看我们的正式讲解

正式讲解部分

当我们如下设置代码并赋给div相应的属性时

1

2

3

4

5

6

7

8

#sider2{

    width100px;

    height100px;

    border-top30px solid #000;

    border-right30px solid #ff0000;

    border-left30px solid #00ff00;

    border-bottom30px solid #0000ff;

}

会得到如下的一张图

 

接着当不设置border-bottom,即默认其为0时,可以得到下面的图片

 

 

然后当设置其width为0时,如下图

 

继续设置其height为0

 

最后假若你把border-left,border-right设置为透明之后,就可以看到如下的三角形了

 

 

这就是设置一个基本的三角形所需要的代码,效果也看起来很直观。按着上面的步骤分析一边就可以很清楚的明白其原理。

还有假如你是想实现一个直角三角形,则最后你需要两个border边的配合使用,浏览器会自动进行一些“拉伸变换”后就可以得到一个直角三角形。

1

2

3

4

5

6

#triangle-topleft {

    width0;

    height0;

    border-top100px solid red;

    border-right100px solid transparent;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值