傳統的網站制作或者web應用中,如果我們需要創建一個提示的話,通常使用圖片來生成小三角,今天這里我們分享一個動畫小教程,幫助你快速學習如何使用純CSS來生成一個三角形。
提示:請使用Firefox或者Chrome查看
javaScript代碼:
<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>
<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>
<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>