css3制作各种箭头及心形图的制作

css3制作各种箭头

在前端页面开发中,经常会涉及到各种箭头的使用,常用的箭头是以图片的形式引入,制作精灵图,维护相对比较麻烦,但其实css3就可以实现相同的效果,同时css3实现的效果更加高效。


上代码:

1. 向上箭头

<span class="moveUp"></span>
.moveUp{                          /*箭头占位符,规定宽高等*/
	width: 15px;   
	height: 25px;
	display: inline-block;
	position: relative;
	cursor: pointer;
}
.moveUp:before, .moveUp:after{     /*伪元素相同属性提取*/
	content: '';
	border-color:transparent;      /*边框颜色透明*/
	border-style: solid;
	position: absolute;           /*绝对定位,分别定位before和after描绘的内容*/
}
.moveUp:before{                 /*伪元素before绘制箭头尾部矩形*/
	border: none;
	background: #555;
	height: 60%;
	width: 30%;
	top:50%;
	left: 8px;
}
.moveUp:after{                /*伪元素after绘制箭头的头部三角形*/
    left: 3px;
    top: -5%;
    border-width: 7px;
    border-bottom-color: #555;      /*如果绘制向下三角形的话,用border-top-color:#555;*/
}

效果图如下:


是不是很方便,随时调整箭头大小等。


2. 向右箭头

<span class="arrowRight"></span>
 .arrowRight{                        /*整个箭头容器*/
            width:40px;
            height:40px;
            display: inline-block;
            position: relative;             /*相对定位*/
        }
        .arrowRight:before,.arrowRight:after{
            content: '';
            border-color: transparent;       /*伪元素边框颜色为透明*/
            border-style: solid;
            position: absolute;               /*伪元素绝对定位*/
        }
        .arrowRight:after{                   /*箭头尾部的矩形*/
            width: 60%;
            height: 9%;
            background-color: #555;
            top: 5px;
            left: 0;
        }
        .arrowRight:before{                 /*箭头三角形*/
            border-left-color: #555;
            border-width: 10px;
            left: 30px;
            top: 0;
        }

效果图如下:


向下向左的箭头写法都类似,三角形加矩形拼接即可。


拐弯的箭头制作如下:

<span class="arror"></span>
.arror{
            width:100px;
            height:100px;
            display: inline-block;
            position: relative;
        }
        .arror:before,.arror:after{
            content: '';
            position: absolute;
            border-style:solid;
            border-color:transparent;            /*统一规定边框颜色为透明色*/
        }
        .arror:before{                          /*四分之一的园制作*/
            width: 30px;
            height: 30px;
            border-radius: 100%;
            border: 10px solid transparent;
            border-left-color: #555;
            transform: rotate(45deg);              /*旋转45deg*/
            left: 0;
            top: 10px;
        }
        .arror:after{                             /*三角形*/
            border-width: 14px;
            border-left-color: #555;
            top: 2px;
            left: 24px;
        }
效果图如下:



在加写一个心形的制作:

之前一直觉得桃心的制作时上面两个园加下面一个三角形的拼接,但是css3中伪元素,在元素上常用的只有before和after两个,分别绘制两个图像,但三个怎么画呢?

其实换一种思维,将心形进行划分,可以发现两个矩形即可以制作心形

<span class="heart"></span>
.heart{                                  /*容器占位*/
            width: 200px;
            height:200px;
            display: inline-block;
            position: relative;
        }
        .heart:before,.heart:after{
            content: '';
            position: absolute;
        }
        .heart:after{                          /*左边矩形,左上,右上圆角半径为50px,右下,左下没有圆角*/
            width: 30px;
            height: 44px;
            background: red;
            border-radius: 50px 50px 0 0;
            transform: rotate(-45deg);          /*逆时针旋转45deg*/
            top: 0;
            left: -10px;
        }
        .heart:before{                       /*右边矩形,左上,右上圆角半径为50px,右下,左下没有圆角*/
            width: 30px;
            height: 44px;
            background: red;
            border-radius: 50px 50px 0 0;
            transform: rotate(45deg);           /*顺时针旋转45deg*/
            top: 0;
            left: 0;
        }
效果图如下所示:



总之,对于利用css3制作的图形,从多个不同的角度去思考,可能就会有突破角。






  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现片切割效果,可以使用CSS的clip属性或者background-clip属性。其中,clip属性是用来裁剪元素的,而background-clip属性是用来裁剪背景的。 以下是一个使用clip属性实现片切割效果的示例代码: ```html <div class="image-container"> <img src="example.jpg" alt="example" /> </div> ``` ```css .image-container { position: relative; width: 400px; height: 300px; overflow: hidden; } .image-container img { position: absolute; clip: rect(0px, 200px, 300px, 0px); } ``` 上述代码中,我们首先创建了一个包含片的容器,然后将容器设置为相对定位,并设置宽高和overflow属性为hidden,这样就可以隐藏容器外部的部分内容。 接着,我们将片设置为绝对定位,并使用clip属性将其裁剪成所需的形状。clip属性的参数是一个矩形,分别对应左上角x轴坐标、左上角y轴坐标、右下角x轴坐标和右下角y轴坐标。 如果想要实现CSS3制作轮播切割效果,可以使用CSS的clip-path属性。clip-path属性可以使用SVG路径或CSS形状来裁剪元素的形状。 以下是一个使用clip-path属性实现轮播切割效果的示例代码: ```html <div class="slider"> <div class="slide slide1"></div> <div class="slide slide2"></div> <div class="slide slide3"></div> </div> ``` ```css .slider { position: relative; width: 800px; height: 400px; overflow: hidden; } .slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center center; background-repeat: no-repeat; animation: slide 12s ease-in-out infinite; } .slide1 { background-image: url('slide1.jpg'); clip-path: polygon(0 0, 100% 0, 75% 100%, 0% 100%); } .slide2 { background-image: url('slide2.jpg'); clip-path: polygon(25% 0, 100% 0, 100% 100%, 0% 100%); } .slide3 { background-image: url('slide3.jpg'); clip-path: polygon(0 0, 100% 0, 100% 75%, 25% 100%); } @keyframes slide { 0% { left: 0; } 33.33% { left: -800px; } 66.67% { left: -1600px; } 100% { left: 0; } } ``` 上述代码中,我们创建了一个轮播容器,并在其中添加了三个滑动块元素。我们使用clip-path属性将每个滑动块裁剪成不同的形状,并使用动画将它们进行轮播。 clip-path属性的参数是一个形状,可以使用polygon()函数来定义多边形形状。函数的参数是多边形的各个点的坐标,以顺时针顺序定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值