如何使用CSS生成一个三角形?

2015-08-24css教程
206

传统的网站制作或者web应用中,如果我们需要创建一个提示的话,通常使用图片来生成小三角,今天这里我们分享一个动画小教程,帮助你快速学习如何使用纯CSS来生成一个三角形。


提示:请使用Firefox或者Chrome查看 
javaScript代码:
<script language="javascript" src="http://www.internetke.com/public/js/jquery.js"></script>
<script language="javascript">
var demo, run;
demo = $("#whole-thing");
function run() {
setTimeout(function() {
return demo.addClass("step-1");
}, 2500);
setTimeout(function() {
return demo.addClass("step-2");
}, 5000);
setTimeout(function() {
return demo.addClass("step-3");
}, 5500);
setTimeout(function() {
return demo.addClass("step-4");
}, 6000);
setTimeout(function() {
return demo.addClass("step-5");
}, 7500);
setTimeout(function() {
return demo.addClass("step-6");
}, 10000);
setTimeout(function() {
return demo.addClass("step-7");
}, 12000);
setTimeout(function() {
return demo.addClass("step-8");
}, 14000);
setTimeout(function() {
return demo.addClass("step-9");
}, 14500);
setTimeout(function() {
return demo.addClass("step-10");
}, 15000);
return setTimeout(function() {
return demo.addClass("step-11");
}, 18000);
};
run();
$("#re-run").click(function() {
$("#whole-thing").removeClass();
run();
});
</script>
CSS代码:

<style type="text/css">
@import url(http://fonts.googleapis.com/css?family=Andika);
.triangle-demo {
width: 100px;
height: 100px;
margin: 0 auto;
background: tan;
border-top: 0 solid #EE7C31;
border-left: 0 solid #F5D97B;
border-bottom: 0 solid #D94948;
border-right: 0 solid #8DB434;
transition: 0.8s 0.2s;
}
.step-1 .triangle-demo {
border-top-width: 10px;
}
.step-2 .triangle-demo {
border-left-width: 10px;
}
.step-3 .triangle-demo {
border-right-width: 10px;
}
.step-4 .triangle-demo {
border-bottom-width: 10px;
}
.step-6 .triangle-demo {
background: transparent;
}
.step-7 .triangle-demo {
width: 0;
height: 0;
}
.step-8 .triangle-demo {
border-left-color: transparent;
}
.step-9 .triangle-demo {
border-right-color: transparent;
}
.step-10 .triangle-demo {
border-top-color: transparent;
}

.triangle-title {
width: 300px;
padding: 1rem;
color: white;
background: #D94948;
border-radius: 20px;
margin: auto;
opacity: 0;
transition: 0.8s 0.2s;
}
.step-11 .triangle-title {
opacity: 1;
}

body {
background: #333;
font-family: 'Andika', sans-serif;
color: white;
text-align: center;
font-size: large;
transform: translateZ(0);
}

.steps {
position: relative;
height: 45px;
margin-bottom:20px;
}
.steps > div {
position: absolute;
top: 0;
left: 0;
width: 100%;
opacity: 0;
background: #333;
transition: 0.3s;
}
.steps .step-0 {
opacity: 1;
}
.step-1 .steps .step-1 {
opacity: 1;
}
.step-2 .steps .step-2 {
opacity: 1;
}
.step-5 .steps .step-5 {
opacity: 1;
}
.step-6 .steps .step-6 {
opacity: 1;
}
.step-7 .steps .step-7 {
opacity: 1;
}
.step-8 .steps .step-8 {
opacity: 1;
}
.step-11 .steps .step-11 {
opacity: 1;
}

h1 {
text-transform: uppercase;
letter-spacing: 1px;
font-size: 14px;
border-bottom: 1px solid #555;
color: #999;
padding-bottom:10px;
font-family: Arial;
font-weight: normal;
}
</style>

HTML代码:
<h1>超短小教程:如何生成一个CSS的三角形?</h1>
<div id="whole-thing">
<div class="steps">
<div class="step-0">Imagine a box(假设这里有一个盒模型)</div>
<div class="step-1">The box has a border-top(这个盒模型拥有一个上边框)</div>
<div class="step-2">It also has the other borders(当然,同时包含其它边框)</div>
<div class="step-5">Notice how the borders meet each other at angles.(注意一下边框连接处的角度)</div>
<div class="step-6">The background of the box is transparent.(盒模型的背景是透明的)</div>
<div class="step-7">The box is actually zero width and zero height.(盒模型的宽度和高度设置为0)</div>
<div class="step-8">Three of the borders are actually transparent in color.(其它3个边框颜色透明)</div>
<div class="step-11">That's how a CSS triangle is made!(看到了一个CSS的三角形如何生成了吧!)</div>
</div>
<div class="triangle-demo"></div>
<div class="triangle-title">
<button id="re-run">再运行一次</button>
</div>
</div>
The End
css3教程

相关推荐

CSS3教程:新增加的结构伪类
网页制作Webjx文章简介:CSS 3增加了大量的结构伪类,利用文档结构树来实现表现,从而可以减少页面内class属性和ID属性的定义,使得文档更加简洁。 相关阅读文章:CSS3属性选择符介绍4.7.3 结构伪类(Structural pseudo-cl...
2016-04-17 css教程
14

CSS3教程:边框属性border的极致应用
网页制作Webjx文章简介:这里讨论的都是关于边框属性border的极致应用,这些应用虽说有些剑走偏门,但在一些特殊的场合,可能还是会用得上的,如果你对HTML代码有洁癖,有切肤之痛,并且认为冗余的标签影响到你的视觉神经,那么你可以权当一种...
2016-04-17 css教程
44

CSS3教程(1):什么是CSS3
网页制作Webjx文章简介:CSS3不是新事物,更不是只是围绕border-radius属性实现的圆角。它正耐心的坐在那里,已经准备好了首次登场,呷着咖啡,等着浏览器来铺上红地毯。 CSS3不是新事物,更不是只是围绕border-radius属性实现...
2016-04-17 css教程
4

CSS3教程(2):网页边框半径和网页圆角
网页制作Webjx文章简介:页面中圆角的实现是个很头疼的问题,虽然现在有很多种实现方法,但是都是比较麻烦的。在本文中,让我们看看如何使用CSS3 border-radius来实现圆角DIV。 页面中圆角的实现是个很头疼的问题,虽然现在有...
2016-04-17 css教程
21

CSS3教程(3):border-color网页边框色彩
网页制作Webjx文章简介:现在我们来看一看如何为边框的border-color添加更多的色彩。 现在我们来看一看如何为边框的border-color添加更多的色彩。上一篇介绍了:CSS3教程(2):网页边框半径和网页圆角使用CSS3的border-r...
2016-04-17 css教程
16

CSS3教程(4):网页边框和网页文字阴影
网页制作Webjx文章简介:阴影大约从CSS2就开始有了,但是只有Safari一个浏览器支持它,到现在依然是这样。阴影在CSS3中可以应用在边框和文字上,就像图片的阴影效果一样. 阴影大约从CSS2就开始有了,但是只有Safari一个浏览器...
2016-04-17 css教程
9