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

柴门鸟雀噪,归客千里至。光明顶下来,一路听着阵阵松涛,我们走过西海,飞来石,天海,爬过百步云梯,伴着凤凰松迎客松的多姿到了玉屏峰。玉屏峰犹如一道屏障,山面光滑如镜子,如屏风,还不时有几个斗大的字,说是哪位名人留下的。玉屏峰最险的地方是在一线天,上下达七八十度的落差,台阶狭,仅容一人,台阶窄,仅托一足,百米长,走多了,腿便打抖了,害怕了,还不时地叫着好刺激呀。

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

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

效果如下:

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

CSS Code复制内容到剪贴板
  1. .triangle{
  2. border-color:#ff0000transparenttransparenttransparent;
  3. border-width:40px40px40px40px;
  4. }

效果:

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

CSS Code复制内容到剪贴板
  1. .triangle{
  2. border-color:#ff0000transparenttransparenttransparent;
  3. border-style:soliddasheddasheddashed;
  4. border-width:40px40px40px40px;
  5. }

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

CSS Code复制内容到剪贴板
  1. .triangle{
  2. border-color:#ff0000#ffff00#0000ff#008000;
  3. border-style:solid;
  4. border-width:0040px40px;
  5. }
CSS Code复制内容到剪贴板
  1. .triangle{
  2. border-color:#ff0000#ffff00#0000ff#008000;
  3. border-style:solid;
  4. border-width:040px40px0;
  5. }

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

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

CSS Code复制内容到剪贴板
  1. .triangle{
  2. border-color:#ff0000#ffff00#0000ff#008000;
  3. border-style:solid;
  4. border-width:40px40px040px;
  5. }
CSS Code复制内容到剪贴板
  1. .triangle{
  2. border-color:#ff0000#ffff00#0000ff#008000;
  3. border-style:solid;
  4. border-width:40px40px40px0;
  5. }

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

segmentfault的"采纳"的显示其实也是用三角形实现的

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

CSS Code复制内容到剪贴板
  1. .accepted-flag:after{
  2. position:absolute;
  3. left:0;
  4. top:25px;
  5. content:'';
  6. border-width:9px18px;
  7. border-style:solid;
  8. border-color:#009a61#009a61transparent#009a61;
  9. }

HTML5 Canvas

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

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

SVG (Scalable Vector Graphics)

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

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

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

CSS Code复制内容到剪贴板
  1. .svg-triangle{
  2. margin:0auto;
  3. width:100px;
  4. height:100px;
  5. }
  6. .svg-trianglepolygon{
  7. fill:#98d02e;
  8. stroke:#65b81d;
  9. stroke-width:2;
  10. }

以上就是CSS中如何使用border来创建三角形的基本方法讲解。很多人爱着爱着,爱了全世界,可唯独忘了爱自己。更多关于CSS中如何使用border来创建三角形的基本方法讲解请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

CSS如何使用Flex和Grid布局如何实现3D骰子

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例