search
HomeWeb Front-endCSS TutorialHow to achieve dotted border scrolling effect in css

How to achieve dotted border scrolling effect in css

Let’s take a look at the effect first:

How to achieve dotted border scrolling effect in css

The implementation code is as follows:

HTML

<div class="box">
  <p>测试测试</p>
</div>

Easy-way

Achieved through background images.

.box {
  width: 100px;
  height: 100px;
  position: relative;
  background: url(https://www.zhangxinxu.com/study/image/selection.gif);
  p {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    height: calc(100% - 2px);
    width: calc(100% - 2px);
    background-color: #fff;
  }
}

(Video tutorial recommendation: css video tutorial)

repeating-linear-gradient

135 degree repeating linear gradient, p spread height, The white background covers the outer div gradient.

.box {
  width: 100px;
  height: 100px;
  background: repeating-linear-gradient(
    135deg,
    transparent,
    transparent 4px,
    #000 4px,
    #000 8px
  );
  overflow: hidden;                // 新建一个BFC,解决margin在垂直方向上折叠的问题
  animation: move 1s infinite linear;
  p {
    height: calc(100% - 2px);
    margin: 1px;
    background-color: #fff;
  }
}
@keyframes move {
  from {
    background-position: -1px;
  }
  to {
    background-position: -12px;
  }
}

linear-gradient&&background

Draw a dotted line through linear gradient and background-size, and then move it to the four sides through background-position. The good thing about this method is that you can set the styles of the four sides and the direction of the animation respectively. Careful students will find that the animation in the previous method is not clockwise or counterclockwise.

.box {
  width: 100px;
  height: 100px;
  background: linear-gradient(0deg, transparent 6px, #e60a0a 6px) repeat-y,
    linear-gradient(0deg, transparent 50%, #0f0ae8 0) repeat-y,
    linear-gradient(90deg, transparent 50%, #09f32f 0) repeat-x,
    linear-gradient(90deg, transparent 50%, #fad648 0) repeat-x;
  background-size: 1px 12px, 1px 12px, 12px 1px, 12px 1px;
  background-position: 0 0, 100% 0, 0 0, 0 100%;
  animation: move2 1s infinite linear;
  p {
    margin: 1px;
  }
}
@keyframes move2 {
  from {
  }
  to {
    background-position: 0 -12px, 100% 12px, 12px 0, -12px 100%;
  }
}

linear-gradient&&mask

The mask attribute specification has been included in the list of candidate recommended specifications. It will be said that it is a certainty that it will enter the established specification standards in the future. You can rest assured to learn it and it will be useful in the future.

Here you can also use mask to achieve the same animation, and you can achieve the effect of dotted border gradient color. The difference from background is that mask needs to add an opaque mask in the middle, otherwise the content of the p element will be covered.

.box {
  width: 100px;
  height: 100px;
  background: linear-gradient(0deg, #f0e, #fe0);
  -webkit-mask: linear-gradient(0deg, transparent 6px, #e60a0a 6px) repeat-y,
    linear-gradient(0deg, transparent 50%, #0f0ae8 0) repeat-y,
    linear-gradient(90deg, transparent 50%, #09f32f 0) repeat-x,
    linear-gradient(90deg, transparent 50%, #fad648 0) repeat-x,
    linear-gradient(0deg, #fff, #fff) no-repeat;        // 这里不透明颜色随便写哦
  -webkit-mask-size: 1px 12px, 1px 12px, 12px 1px, 12px 1px, 98px 98px;
  -webkit-mask-position: 0 0, 100% 0, 0 0, 0 100%, 1px 1px;
  overflow: hidden;
  animation: move3 1s infinite linear;
  p {
    height: calc(100% - 2px);
    margin: 1px;
    background-color: #fff;
  }
}
@keyframes move3 {
  from {
  }
  to {
    -webkit-mask-position: 0 -12px, 100% 12px, 12px 0, -12px 100%, 1px 1px;
  }
}

Recommended tutorial: css quick start

The above is the detailed content of How to achieve dotted border scrolling effect in css. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:脚本之家. If there is any infringement, please contact admin@php.cn delete
Using GitHub Template Repos to Jump-Start Static Site ProjectsUsing GitHub Template Repos to Jump-Start Static Site ProjectsApr 16, 2025 am 11:14 AM

If you’re getting started with static site generators, did you know you can use GitHub template repositories to quickly start new projects and reduce your

Static First: Pre-Generated JAMstack Sites with Serverless Rendering as a FallbackStatic First: Pre-Generated JAMstack Sites with Serverless Rendering as a FallbackApr 16, 2025 am 11:06 AM

You might be seeing the term JAMstack popping up more and more frequently. I’ve been a fan of it as an approach for some time.

CSS-Tricks Chronicle XXXVICSS-Tricks Chronicle XXXVIApr 16, 2025 am 10:58 AM

This is one of these little roundups of things going on with myself, this site, and the other sites that are part of the CSS-Tricks family.

Weekly Platform News: Emoji String Length, Issues with Rounded Buttons, Bundled ExchangesWeekly Platform News: Emoji String Length, Issues with Rounded Buttons, Bundled ExchangesApr 16, 2025 am 10:46 AM

In this week's roundup, the string length of two emojis is not always equal, something to consider before making that rounded button, and we may have a new

Meeting GraphQL at a Cocktail MixerMeeting GraphQL at a Cocktail MixerApr 16, 2025 am 10:43 AM

GraphQL and REST are two specifications used when building APIs for websites to use. REST defines a series of unique identifiers (URLs) that applications use

Introducing Sass ModulesIntroducing Sass ModulesApr 16, 2025 am 10:42 AM

Sass just launched a major new feature you might recognize from other languages: a module system. This is a big step forward for @import. one of the most-used

How I Learned to Stop Worrying and Love Git HooksHow I Learned to Stop Worrying and Love Git HooksApr 16, 2025 am 10:41 AM

The merits of Git as a version control system are difficult to contest, but while Git will do a superb job in keeping track of the commits you and your

A Proof of Concept for Making Sass FasterA Proof of Concept for Making Sass FasterApr 16, 2025 am 10:38 AM

At the start of a new project, Sass compilation happens in the blink of an eye. This feels great, especially when it’s paired with Browsersync, which reloads

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.