CSS中使用border来创建三角形的基本方法讲解

所属分类: 网页制作 / CSS 阅读数: 280
收藏 0 赞 0 分享

比较简单实用的还是使用border来创建三角形,今天主要研究这个的实现
将边框分别设置为红/黄/蓝/绿

CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     height: 0;   
  3.     width: 0;   
  4.     overflowhidden;   
  5.     font-size: 0;   
  6.     line-height: 0;   
  7.     border-color#ff0000 #ffff00 #0000ff #008000;   
  8.     border-stylesolid;   
  9.     border-width40px 40px 40px 40px;   
  10. }  

效果如下:
2016331113511345.png (88×85)

四个三角形合成一个正方形,大小为80x80,如果我们只想保留其中某个三角形的话,将其它的设置为透明即可,比如(以下css未改变部分与上面相同)

CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     border-color#ff0000 transparent transparent transparent;   
  3.     border-width40px 40px 40px 40px;   
  4. }  

效果:
2016331113536891.png (91×83)

IE6不支持transparent,所以不会透明而会显示难看的黑色,不过也有解决方法:将透明的部分对应的border-style设为dashed即可

CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     border-color#ff0000 transparent transparent transparent;   
  3.     border-stylesolid dashed dashed dashed;   
  4.     border-width40px 40px 40px 40px;   
  5. }  

正方形按对角线平分为两个三角形的情况

CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     border-color#ff0000 #ffff00 #0000ff #008000;   
  3.     border-stylesolid;   
  4.     border-width: 0 0 40px 40px;   
  5. }  
2016331113556112.png (45×45)
CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     border-color#ff0000 #ffff00 #0000ff #008000;   
  3.     border-stylesolid;   
  4.     border-width: 0 40px 40px 0;   
  5. }  

2016331113615678.png (47×42)

需要指出的是,此时正方形的大小为40x40

如果将border-width的某一边设为0又会怎么样呢?也算是两种情况

CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     border-color#ff0000 #ffff00 #0000ff #008000;   
  3.     border-stylesolid;   
  4.     border-width40px 40px 0 40px;   
  5. }  

2016331113633110.png (88×46)

CSS Code复制内容到剪贴板
  1. .triangle {   
  2.     border-color#ff0000 #ffff00 #0000ff #008000;   
  3.     border-stylesolid;   
  4.     border-width40px 40px 40px 0;   
  5. }  

2016331113651034.png (49×87)

结果是长方形,其中一边为80一边为40。宽度被设为0的边框对应方向的边框会形成较大的三角形,且长度加倍

segmentfault的"采纳"的显示其实也是用三角形实现的
2016331113707748.png (42×50)

上部分是包含'采纳'两个字的块状元素,设置position: relative。下部分用伪类after设置一个position: absolute的块状元素,将两者接在一起。通过border-width设置成长方形而不是正方形,再将下方的三角形去掉即可,看下面的css十分明显,这也是三角形的一个很好的应用

CSS Code复制内容到剪贴板
  1. .accepted-flag:after {   
  2.     positionabsolute;   
  3.     left: 0;   
  4.     top25px;   
  5.     content'';   
  6.     border-width9px 18px;   
  7.     border-stylesolid;   
  8.     border-color#009a61 #009a61 transparent #009a61;   
  9. }  

HTML5 Canvas

在你的HTML文件中有以下的canvas元素:

XML/HTML Code复制内容到剪贴板
  1. <canvas id="triangle" height="100" width="100">Triangle</canvas>  
这里的如何使用JavaScript绘制一个三角形:
JavaScript Code复制内容到剪贴板
  1. var canvas = document.getElementById('triangle');   
  2. var context = canvas.getContext('2d');   
  3.   
  4. context.beginPath();   
  5. context.moveTo(0, 0);   
  6. context.lineTo(100, 0);   
  7. context.lineTo(50, 100);   
  8.   
  9. context.closePath();   
  10.   
  11. context.fillStyle = "rgb(78, 193, 243)";   
  12. context.fill();  

SVG (Scalable Vector Graphics)

这是如何在您的标签,你可以定义一个内联SVG三角形:

XML/HTML Code复制内容到剪贴板
  1. <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="svg-triangle">  
  2.   <polygon points="0,0 100,0 50,100"/>  
  3. </svg>  

然后,只需添加一些样式:

CSS Code复制内容到剪贴板
  1. .svg-triangle{   
  2.  margin: 0 auto;   
  3.  width100px;   
  4.  height100px;     
  5. }     
  6.   
  7. .svg-triangle polygon {   
  8.  fill:#98d02e;   
  9.  stroke:#65b81d;   
  10.  stroke-width:2;   
  11. }  
更多精彩内容其他人还在看

CSS圆角边框制作指南与实例

这篇文章主要介绍了CSS圆角边框制作指南与实例,这里突出讲解了以纯代码实现的小圆角 来消灭锯齿的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

css实现移动端图片文字水平居中

这篇文章主要为大家详细介绍了css实现移动端图片文字水平居中的方法,如何实现图片以及文字的整体水平居中,本文为大家提供两种解决办法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Div+CSS对HTML的table表格定位用法实例

这篇文章主要介绍了Div+CSS对HTML的table表格定位用法实例,文中讲到了CSS的定位差异问题需要的朋友可以参考下
收藏 0 赞 0 分享

使用div+CSS将页脚始终控制在页面最下方的方法

这篇文章主要介绍了使用div+CSS将页脚始终控制在页面最下方的方法,文中介绍了设置container以及使用绝对定位两种方法来解决,需要的朋友可以参考下
收藏 0 赞 0 分享

你值得拥有的CSS下拉菜单效果

这篇文章主要介绍了你值得拥有的多种CSS下拉菜单效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

CSS利用伪元素实现导航栏斜线分隔

这篇文章主要介绍了CSS利用伪元素实现导航栏斜线分隔的相关资料
收藏 0 赞 0 分享

纯CSS3打造属于自己的“小黄人”

这篇文章主要为大家详细介绍了纯CSS3打造属于自己的“小黄人”的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

浅谈各种浏览器下的CSS Hack兼容性写法

这篇文章主要介绍了各种浏览器下的CSS Hack兼容性写法,CSS Hack大致可以分为内部Hack和选择器Hack以及HTML头部引用Hack,需要的朋友可以参考下
收藏 0 赞 0 分享

学习DIV+CSS网页布局之一列布局

学习DIV+CSS网页布局中的一列布局,本文为大家分享的是DIV+CSS网页布局教程的第一篇,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

学习DIV+CSS网页布局之两列布局

学习DIV+CSS网页布局中的两列布局,本文为大家分享的是DIV+CSS网页布局教程的第二篇,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多