我是靠谱客的博主 贪玩滑板,最近开发中收集的这篇文章主要介绍CSS3鼠标滑过矩形动画按钮svg,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

效果图

在这里插入图片描述

操作步骤

一,添加框架标签

     <a>
         <svg>
             <rect></rect>
         </svg>
         Kinghiee
     </a>

在这里插入图片描述

注:div标签只是为了在最初编写程序的时候可以清楚找到外围,最后结束可以去掉

二,编写a标签样式

color: rgba(0,128,128,0.8);/*设置a字体颜色*/
         display: block;/*a行级标签变为块级标签*/
         text-align: center;/*居中*/
         font-weight:bold;/*字体粗细*/
         font-size: 20px;/*字体大小*/
         text-decoration: none;/*去掉下划线*/
         text-transform:uppercase;/*控制文本大小写*/
         vertical-align: middle;
         position: relative;/*相对定位*/
         max-width: 300px;/*最大宽度*/
         width: 100%;/*是a的宽度一直处于300px*/
         background:transparent;/*背景为透明*/
         float:left;/*左浮动*/
         min-height: 60px;/*最小高度*/
         max-height: 100px;/*最大高度*/

在这里插入图片描述
效果图
在这里插入图片描述

三,编辑SVG

.set_a_style svg{
       position: absolute;/*绝对定位*/
        left: 0;
        top: 0;
        height: 100%;/*和a标签同高*/
        width: 100%;/*和a标签同宽*/
     }

效果图
在这里插入图片描述

这个时候KINGHIEE不在中间,所以需要在a中加入line-height让字体居中

line-height: 60px;/*字体居中*/

效果图
在这里插入图片描述
现在基本样式已经出来,现在让我们编辑一下rect

四,编辑rect和字体动画

 <rect x="0" y="0" fill="none" width="100%" height="100%"></rect>
 //x 属性定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)
 //y 属性定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)
 // fill 填充为无色
 //宽高和a标签padding的宽高一致

在这里插入图片描述
接着添加样式

 .set_a_style rect{
         fill: none;
         stroke: #f2625a;/*定义一条线,文本或元素轮廓颜色*/
         stroke-width: 5;/*线宽*/
         stroke-dasharray: 422,0;/*
            stroke-dasharray为一个参数时: 其实是表示虚线长度和每段虚线之间的间距
           如:stroke-dasharray = '10' 表示:虚线长10,间距10,然后重复 虚线长10,间距10

            两个参数或者多个参数时:一个表示长度,一个表示间距
           如:stroke-dasharray = '10, 5' 表示:虚线长10,间距5,然后重复 虚线长10,间距5
           如:stroke-dasharray = '20, 10, 5' 表示:虚线长20,间距10,虚线长5,接着是间距20,虚线10,间距5,之后开始如此循环
         */
         transition: all 450ms linear 0s;/*过度时间*/
     }
     .set_a_style:hover{
          font-weight: 900;
          letter-spacing: 2px;/*字体间隔*/
          transition: all 150ms linear 0s;/*过度*/
        }
      .set_a_style:hover rect{
          stroke-width: 8;/*宽度又5变为8*/
          stroke-dasharray: 50, 540;
          stroke-dashoffset: 100;/*
           这个属性是相对于起始点的偏移,正数偏移x值的时候,相当于往左移动了x个长度单位,负数偏移x的时候,相当于往右移动了x个长度单位。
           需要注意的是,不管偏移的方向是哪边,要记得dasharray 是循环的,也就是 虚线-间隔-虚线-间隔。
           这个属性要搭配stroke-dashoffset才能看得出来效果,非虚线的话,是无法看出偏移的*/
          transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
        }

五,总体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
     .set_a_style{
         color: rgba(0,128,128,0.8);/*设置a字体颜色*/
         display: block;/*a行级标签变为块级标签*/
         text-align: center;/*居中*/
         font-weight:bolder;/*字体粗细*/
         font-size: 20px;/*字体大小*/
         text-decoration: none;/*去掉下划线*/
         text-transform:uppercase;/*控制文本大小写*/
         vertical-align: middle;
         position: relative;/*相对定位*/
         max-width: 300px;/*最大宽度*/
         width: 100%;/*是a的宽度一直处于300px*/
         background:transparent;/*背景为透明*/
         float:left;/*左浮动*/
         min-height: 60px;/*最小高度*/
         max-height: 100px;/*最大高度*/
         line-height: 60px;/*字体居中*/
     }
    .set_a_style svg{
        position: absolute;/*绝对定位*/
        left: 0;
        top: 0;
        height: 100%;/*和a标签同高*/
        width: 100%;/*和a标签同宽*/
     }
     .set_a_style rect{
         fill: none;
         stroke: #f2625a;/*定义一条线,文本或元素轮廓颜色*/
         stroke-width: 5;/*线宽*/
         stroke-dasharray: 422,0;/*
            stroke-dasharray为一个参数时: 其实是表示虚线长度和每段虚线之间的间距
           如:stroke-dasharray = '10' 表示:虚线长10,间距10,然后重复 虚线长10,间距10

            两个参数或者多个参数时:一个表示长度,一个表示间距
           如:stroke-dasharray = '10, 5' 表示:虚线长10,间距5,然后重复 虚线长10,间距5
           如:stroke-dasharray = '20, 10, 5' 表示:虚线长20,间距10,虚线长5,接着是间距20,虚线10,间距5,之后开始如此循环
         */
         transition: all 450ms linear 0s;/*过度时间*/
     }
     .set_a_style:hover{
          font-weight: 900;
          letter-spacing: 2px;/*字体间隔*/
          transition: all 150ms linear 0s;/*过度*/
        }
      .set_a_style:hover rect{
          stroke-width: 8;/*宽度又5变为8*/
          stroke-dasharray: 50, 540;
          stroke-dashoffset: 100;/*
           这个属性是相对于起始点的偏移,正数偏移x值的时候,相当于往左移动了x个长度单位,负数偏移x的时候,相当于往右移动了x个长度单位。
           需要注意的是,不管偏移的方向是哪边,要记得dasharray 是循环的,也就是 虚线-间隔-虚线-间隔。
           这个属性要搭配stroke-dashoffset才能看得出来效果,非虚线的话,是无法看出偏移的*/
          transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
        }
    </style>
</head>
<body>

     <a href="#"  class="set_a_style">
         <svg >
             <rect x="0" y="0" fill="none" width="100%" height="100%"></rect>
         </svg>
         kinghiee
     </a>

</body>
</html>

最后

以上就是贪玩滑板为你收集整理的CSS3鼠标滑过矩形动画按钮svg的全部内容,希望文章能够帮你解决CSS3鼠标滑过矩形动画按钮svg所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部