CSS 使用border来创建三角形的基本思路和实例

WBOY
Release: 2016-06-01 09:53:13
Original
1193 people have browsed it

比较简单实用的还是使用border来创建三角形,今天主要研究这个的实现

将边框分别设置为红/黄/蓝/绿

.triangle {   
    height: 0;   
    width: 0;   
    overflow: hidden;   
    font-size: 0;   
    line-height: 0;   
    border-color: #ff0000 #ffff00 #0000ff #008000;   
    border-style: solid;   
    border-width: 40px 40px 40px 40px;   
}  
Copy after login

效果如下:

CSS 使用border来创建三角形的基本思路和实例

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

.triangle {   
    border-color: #ff0000 transparent transparent transparent;   
    border-width: 40px 40px 40px 40px;   
}  
Copy after login

效果如下:

CSS 使用border来创建三角形

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

.triangle {   
    border-color: #ff0000 transparent transparent transparent;   
    border-style: solid dashed dashed dashed;   
    border-width: 40px 40px 40px 40px;   
}  
Copy after login

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

.triangle {   
    border-color: #ff0000 #ffff00 #0000ff #008000;   
    border-style: solid;   
    border-width: 0 0 40px 40px;   
}  
Copy after login

CSS 使用border来创建三角形

.triangle {   
    border-color: #ff0000 #ffff00 #0000ff #008000;   
    border-style: solid;   
    border-width: 0 40px 40px 0;   
} 
Copy after login

CSS 使用border来创建三角形

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

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

.triangle {   
    border-color: #ff0000 #ffff00 #0000ff #008000;   
    border-style: solid;   
    border-width: 40px 40px 0 40px;   
}  
Copy after login

CSS 使用border来创建三角形

.triangle {   
    border-color: #ff0000 #ffff00 #0000ff #008000;   
    border-style: solid;   
    border-width: 40px 40px 40px 0;   
}  
Copy after login

CSS 使用border来创建三角形

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

 

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

CSS 使用border来创建三角形

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

.accepted-flag:after {   
    position: absolute;   
    left: 0;   
    top: 25px;   
    content: '';   
    border-width: 9px 18px;   
    border-style: solid;   
    border-color: #009a61 #009a61 transparent #009a61;   
}  
Copy after login

 

HTML5 Canvas

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

Triangle
Copy after login

这里的如何使用JavaScript绘制一个三角形:

var canvas = document.getElementById('triangle');   
var context = canvas.getContext('2d');   
  
context.beginPath();   
context.moveTo(0, 0);   
context.lineTo(100, 0);   
context.lineTo(50, 100);   
  
context.closePath();   
  
context.fillStyle = "rgb(78, 193, 243)";   
context.fill();  
Copy after login

 

SVG (Scalable Vector Graphics)

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

Copy after login

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

.svg-triangle{   
 margin: 0 auto;   
 width: 100px;   
 height: 100px;     
}     
  
.svg-triangle polygon {   
 fill:#98d02e;   
 stroke:#65b81d;   
 stroke-width:2;   
}  
Copy after login

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!