css3三角形使用场景
我们知道有一个特效是span下拉列表,也就是说当鼠标放上一个div时,会出现原本隐藏的内容或者二级菜单,这样一个下拉列表会突出来一个小的三角形指向原本的div区域块,如图所示:
那么我们现在来总结一下,我们是如何写出这些三角形的。
CSS3三角形实现原理
在css3中,我们主要使用的是一个transparent的属性,意思是透明的,比如我们将字体设置为黑色会写color:black,那么如果想把字体的颜色设置为透明,我们可以写color:transparent。同理background-color:transparent可以设置背景为透明。
三角形8种分类
我们根据三角形的位置分为8种:triangle up,triangle down,triangle left,triangle right,triangle top left,triangle top right,triangle bottom left和triangle bottom right。
8种三角形实现实例
1.triangle up 上三角形
#triangle-up{
width:0;
height:0;
border-left:50px solid transparent;
border-right:50px solid transparent;
border-bottom:100px solid black;
}
2.triangle down 下三角形
#triangle-down{
width:0;
height:0;
border-left:50px solid transparent;
border-right:50px solid transparent;
border-top:100px solid black;
}
3.triangle left 左三角形
#triangle-left{
width:0;
height:0;
border-top:50px solid transparent;
border-bottom:50px solid transparent;
border-right:100px solid black;
}
4.triangle right 右三角形
#triangle-right{
width:0;
height:0;
border-top:50px solid transparent;
border-bottom:50px solid transparent;
border-left:100px solid black;
}
5.triangle top left 左上三角形
#triangle-topleft{
width:0;
height:0;
border-top:100px solid black;
border-right:100px solid transparent;
}
6.triangle top right 右上三角形
#triangle-topright{
width:0;
height:0;
border-top:100px solid black;
border-left:100px solid transparent;
}
7.triangle bottom left 左下三角形
#triangle-bottomleft{
width:0;
height:0;
border-bottom:100px solid black;
border-right:100px solid transparent;
}
8.triangle bottom right 右下三角形
#triangle-bottomright{
width:0;
height:0;
border-bottom:100px solid black;
border-left:100px solid transparent;
}
源码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- https://blog.csdn.net/qq_42928070/article/details/103036155 -->
<div style="width: 500px;height:500px;margin-top: 30px;margin-left: 30px;">
<span id="triangle-up"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-down"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-left"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-right"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-topleft"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-topright"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-bottomleft"> </span>
<span style="margin-left: 10px;">******</span>
<span id="triangle-bottomright"> </span>
</div>
</body>
<style>
#triangle-up {
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 15px solid black;
}
#triangle-down {
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 15px solid black;
}
#triangle-left {
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-right: 15px solid black;
}
#triangle-right {
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 15px solid black;
}
#triangle-topleft {
width: 0;
height: 0;
border-top: 15px solid black;
border-right: 15px solid transparent;
}
#triangle-topright {
width: 0;
height: 0;
border-top: 15px solid black;
border-left: 15px solid transparent;
}
#triangle-bottomleft {
width: 0;
height: 0;
border-bottom: 15px solid black;
border-right: 15px solid transparent;
}
#triangle-bottomright {
width: 0;
height: 0;
border-bottom: 15px solid black;
border-left: 15px solid transparent;
}
</style>
</html>