stroke-dasharray 패턴이 작동하는 방식 PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

stroke-dasharray 패턴 작동 방식

SVG에 줄이 있다고 가정해 보겠습니다.

<svg>
  <line x1="0" y1="30" x2="500" y2="30" stroke-color="#f8a100" />
</svg>

당신은을 사용할 수 있습니다 stroke-dasharray 대시를 만드는 CSS의 속성:

line {
  stroke-dasharray: 5;
}

그 5 값은 SVG의 크기를 기반으로 하는 상대 단위입니다. viewBox. 실제로 CSS 길이를 사용할 수 있습니다. 그러나 그것이 하는 일은 길이가 5단위이고 그 사이에 5단위 간격이 있는 대시 패턴을 만드는 것입니다.

여태까지는 그런대로 잘됐다. 두 번째 값이 간격 길이를 개별적으로 설정하는 두 값을 사용할 수 있습니다.

이제 대시는 5단위이고 간격은 10입니다. 세 번째 값을 시도해 보겠습니다.

여기에서 패턴을 형성하는 방법이 보이나요? 그것은 간다:

  • 대시: 5개
  • 간격: 10개
  • 대시: 15개

당신은 그것이 똑같은 케이던스에서 그 후에 반복된다고 생각할 것입니다. 하지만! 그렇다면 대시가 서로 부딪칠 것입니다.

  • 대시: 5개
  • 간격: 10개
  • 대시: 15개
  • 대시: 5개
  • 간격: 10개
  • 대시: 15개
  • …등등.

대신, stroke-dasharray 홀수의 값이 있으면 모두 똑똑해지고 패턴을 복제합니다. 그래서…

stroke-dasharray: 5 10 15;

/* is the same as */
stroke-dasharray: 5 10 15 5 10 15;

이것이 실제로 단일 값이 작동하는 이유입니다! 앞서 우리는 단일 선언 5 값. 라는 말과 정말 똑같습니다 stroke-dasharray: 5 5. 두 번째 값이 없으면 stroke-dasharray 반복 가능한 패턴을 얻기 위해 첫 번째 값을 암시적으로 복제합니다. 그렇지 않으면 길이가 5단위인 대시 실선으로 표시되지만 그 사이에는 간격이 없습니다!

패턴은 또한 모양 자체의 크기에 따라 다릅니다. SVG line 500단위입니다. 더 크게 설정하자 stroke-dasharray 값을 추가하고 다음을 수행합니다.

stroke-dasharray: 10 20 30 40 50; /* 150 units */

패턴이 150번 실행되면(4단위 ⨉ 600번 반복) 총 100단위를 처리하게 됩니다. 패턴 자체가 오버플로되는 것을 방지하기 위해 추가 XNUMX개 단위가 잘립니다.

그게 다야.

🎩 모자 팁 조슈아 댄스 for 이것을 불러!

타임 스탬프 :

더보기 CSS 트릭