Hoe stroke-dasharray-patronen werken PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Hoe stroke-dasharray-patronen werken

Stel dat je een regel in SVG hebt:

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

U kunt gebruik maken van de stroke-dasharray eigenschap in CSS om streepjes te maken:

line {
  stroke-dasharray: 5;
}

ZIJN 5 waarde is een relatieve eenheid gebaseerd op de grootte van de SVG's viewBox. We zouden eigenlijk elke CSS-lengte kunnen gebruiken. Maar wat het doet, is een patroon maken van streepjes van 5 eenheden lang met 5 eenheidsopeningen ertussen.

Tot nu toe, zo goed. We kunnen twee waarden gebruiken waarbij de tweede waarde afzonderlijk de lengte van de opening instelt:

Nu hebben we streepjes van 5 eenheden en gaten van 10. Laten we een derde waarde proberen:

Zie je hoe we hier een patroon vormen? Het gaat:

  • Streepje: 5 eenheden
  • Tussenruimte: 10 eenheden
  • Streepje: 15 eenheden

Je zou denken dat het zich daarna herhaalt in exact dezelfde cadans. Maar nee! Als dat zo was, zouden we streepjes tegen elkaar hebben:

  • Streepje: 5 eenheden
  • Tussenruimte: 10 eenheden
  • Streepje: 15 eenheden
  • Streepje: 5 eenheden
  • Tussenruimte: 10 eenheden
  • Streepje: 15 eenheden
  • …enzovoort.

In plaats stroke-dasharray wordt helemaal slim en dupliceert het patroon als er een oneven aantal waarden is. Dus...

stroke-dasharray: 5 10 15;

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

Dat is eigenlijk waarom een ​​enkele waarde werkt! Eerder verklaarden we een single 5 waarde. Dat is eigenlijk hetzelfde als zeggen stroke-dasharray: 5 5. Zonder de tweede waarde, stroke-dasharray dupliceert impliciet de eerste waarde om een ​​herhaalbaar patroon te krijgen. Anders zou het gewoon een ononderbroken lijn van streepjes zijn die 5 eenheden lang zijn, maar geen gaten ertussen!

Het patroon hangt ook af van de grootte van de vorm zelf. Onze SVG line bedraagt ​​500 eenheden. Laten we groter zetten stroke-dasharray waarden en tel ze op:

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

Als het patroon vier keer wordt uitgevoerd (150 eenheden ⨉ 4 iteraties), hebben we te maken met 600 eenheden in totaal. Die extra 100 eenheden worden afgesneden om te voorkomen dat het patroon zelf overloopt.

Dat is alles.

🎩 Hoed tip om Joshua Dans For dit uitroepen!

Tijdstempel:

Meer van CSS-trucs