写点什么

CSS 常用样式——绘制单(双)箭头的多种方法(2)

发布于: 2020 年 09 月 08 日
CSS常用样式——绘制单(双)箭头的多种方法(2)

作者:程序员学院

官方网址:https://www.chengxuyuan.com

1、前言



今天帮大家总结一下CSS绘制箭头的多种方法。

2、开始绘制单个箭头



(1)方法一

首先我们绘制一个正方形模块,同时给他上、右边框(只要是相邻的两个边距都是可以的~),包括边框颜色和宽度,该设置决定了箭头的宽度和颜色,最后旋转即可。

注意:旋转的中心为盒子模型的几何中心。





HTML代码:

<div class="arrow-right"></div>



CSS代码:

.arrow-right {
width: 60px;
height: 60px;
background-color: transparent; /* 模块背景为透明 */
border-color: #f02c57;
border-style: solid;
border-width: 6px 6px 0 0;
margin: 300px auto;
transform: rotate(45deg); /*箭头方向可以自由切换角度*/
}



(2)方法二

第二种方法我们用模块的伪类:after和:before和上一篇文章(CSS常用样式——绘制各种角度的三角形(1))介绍的绘制直角三角形的方法来实现。

首页我们用伪类:after和:before绘制两个相同大小、相同方向的三角形,一个设置为箭头颜色的背景,另一个与底色相同的颜色,两个相重叠,但要有一定距离的便宜,作为箭头的大小。



HTML代码:

<div class="arrow-right"></div>



CSS代码:

.arrow-right {
width: 100px;
height: 100px;
position: relative;
margin:300px auto;
}
.arrow-right:before{
content: "";
display: block;
position: absolute;
top: 50%;
right: 0;
width: 0;
height: 0;
border:100px solid;
margin-top: -100px;
border-color: transparent transparent transparent #f02c57; /* 箭头颜色 */
}
.arrow-right:after{
content: "";
display: block;
position: absolute;
top: 50%;
right: 10px; /*位置偏移,决定箭头的粗细*/
width: 0;
height: 0;
border:100px solid;
margin-top: -100px;
border-color: transparent transparent transparent #fff; /* 与模块底色相同*/
}



这两种方法,均可以用标签或标签的伪类来完成,相比而言,个人觉得第一种方法比较简单。



3、双箭头

学会制作了单箭头,双箭头我们制作起来就很容易了。



(1)方法一

这里利用的是标签的伪类:after和:before



HTML代码:

<div class="arrow-right"></div>



CSS代码:

.arrow-right {
width: 100px;
height: 100px;
margin: 300px auto;
display: flex;
}
.arrow-right::before,
.arrow-right:after {
content: "";
width: 100px;
height: 100px;
background-color: transparent;/* 模块背景为透明 */
border-color: #f02c57;
border-style: solid;
border-width: 6px 6px 0 0;
transform: rotate(45deg);
}



(2)方法二



HTML代码:

<div class="arrow-right">
<span></span>
<span></span>
</div>



CSS代码:

.arrow-right {
display: flex;
width: 400px;
height: 400px;
margin: 400px;
}
.arrow-right span {
width: 100px;
height: 100px;
position: relative;
margin: 0 20px;
}
.arrow-right span:before {
content: "";
display: block;
position: absolute;
top: 50%;
right: 0;
width: 0;
height: 0;
border: 100px solid;
margin-top: -100px;
border-color: transparent transparent transparent #f02c57; /* 箭头颜色 */
}
.arrow-right span:after {
content: "";
display: block;
position: absolute;
top: 50%;
right: 10px; /*位置偏移,决定箭头的粗细*/
width: 0;
height: 0;
border: 100px solid;
margin-top: -100px;
border-color: transparent transparent transparent #fff;/* 与模块底色相同*/
}



怎么样?有没有get起来?





发布于: 2020 年 09 月 08 日阅读数: 52
用户头像

程序员学院,致力于打造高品质在线教育 2020.09.03 加入

公众号:华仁程序员学院

评论

发布
暂无评论
CSS常用样式——绘制单(双)箭头的多种方法(2)