css 流动边框,蚂蚁线

蚂蚁线的效果
在这里插入图片描述

蚂蚁线的解剖效果
在这里插入图片描述

总结:通过4条虚线的移动产生效果

此次内容只对顶部虚线进行解析

1、盒子相对定位 4条虚线绝对相对

2、transform: translateX(-200px)的作用

-200px 200px指的是正方形的边长 -200px 就是让虚线向左移动200px

没有transform: translateX(-200px)在这里插入图片描述
有transform: translateX(-200px)
在这里插入图片描述

最后通过 animation: toRight 8s linear infinite;

使其有动画的移动会远处

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            position: relative;
            width:200px;
            height:200px;
            background: #b4affd;
            overflow: hidden;
        }
        .box>span{
            position: absolute;
        }
        .box>span:nth-child(4n+1){/*上*/
            left:0;
            top:0;
            height: 0px;
            width:400px;
            border-top:5px dashed black;
            animation: toRight 8s linear infinite;
            transform: translateX(-200px);
            animation-direction:alternate;
        }
        @keyframes toRight{
            to{
                transform: translateX(0px);
            }
        }
        .box>span:nth-child(4n+2){/*右*/
            right:0;
            top:0;
            height: 400px;
            width:0px;
            border-right:5px dashed black;
            animation: toBottom 8s linear infinite;
            transform: translateY(-200px);
            animation-direction:alternate;
        }
        @keyframes toBottom{
            to{
                transform: translateY(0px);
            }
        }
        .box>span:nth-child(4n+3){/*下*/
            left:0;
            bottom:0;
            height: 0px;
            width:400px;
            border-bottom:5px dashed black;
            animation: toLeft 8s linear infinite;
            transform: translateX(0px);
            animation-direction:alternate;
        }
        @keyframes toLeft{
            to{
                transform: translateX(-200px);
            }
        }
        .box>span:nth-child(4n){/*左*/
            left:0;
            top:0;
            height: 400px;
            width:0px;
            border-left:5px dashed black;
            animation: toTop 8s linear infinite;
            transform: translateY(0px);
            animation-direction:alternate;
        }
        @keyframes toTop{
            to{
                transform: translateY(-200px);
            }
        }
    </style>
</head>
<body>
    <div class="box">
        <span></span>
        <span></span>
        <span></span>
        <span></span>
    </div>
</body>
</html>

来源于扑克飞剑大佬

### 如何使用 CSS 实现虚线边框 在网页设计中,CSS 提供了多种方式来实现虚线边框。以下是两种常见的方法: #### 方法一:使用 `border` 属性 通过设置 `border-style` 为 `dashed`,可以轻松创建虚线边框。以下是一个简单的示例代码: ```css .dashed-border { border: 2px dashed #000; /* 设置虚线样式、宽度和颜色 */ } ``` 这种方法是最直接的方式,适用于需要快速添加虚线边框的场景[^1]。 #### 方法二:使用 `background-image` 和 `linear-gradient` 另一种实现虚线的方法是利用 `background-image` 和 `linear-gradient`。这种方式提供了更多的自定义选项,例如调整虚线的间隙和颜色。以下是一个示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS线示例</title> <style> .dashed-line { height: 1px; width: 100%; background-image: linear-gradient(to right, black 50%, transparent 50%); background-size: 4px 100%; /* 控制虚线和间隙的宽度 */ } </style> </head> <body> <div class="dashed-line"></div> </body> </html> ``` 在这个例子中,`linear-gradient` 创建了一个从黑色到透明的渐变效果,从而模拟出虚线的效果[^2]。 #### 方法三:使用 `background` 属性 除了上述两种方法外,还可以通过 `background` 属性结合 `background-size` 和 `background-repeat` 来实现虚线效果。以下是一个示例代码: ```css .dashed-background { background: linear-gradient(to left, transparent 0%, transparent 50%, #ccc 50%, #ccc 100%); background-size: 10px 1px; background-repeat: repeat-x; height: 1px; } ``` 这种方法特别适合用于创建水平或垂直的虚线分割线[^3]。 ### 注意事项 - 使用 `border-style: dashed` 是最简单且兼容性最好的方式。 - 如果需要更复杂的虚线效果(如调整虚线的间隙),可以考虑使用 `background-image` 或 `linear-gradient`。 - 在实际应用中,可以根据具体需求选择最适合的方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值