<svgviewBox="-3 0 33 10"xmlns="http://www.w3.org/2000/svg"><!-- No dash array --><linex1="0"y1="1"x2="30"y2="1"stroke="black"/><!-- No dash offset --><linex1="0"y1="3"x2="30"y2="3"stroke="black"stroke-dasharray="3 1"/><!--
The start of the dash array computation
is pulled by 3 user units
--><linex1="0"y1="5"x2="30"y2="5"stroke="black"stroke-dasharray="3 1"stroke-dashoffset="3"/><!--
The start of the dash array computation
is pushed by 3 user units
--><linex1="0"y1="7"x2="30"y2="7"stroke="black"stroke-dasharray="3 1"stroke-dashoffset="-3"/><!--
The start of the dash array computation
is pulled by 1 user units which ends up
in the same rendering as the previous example
--><linex1="0"y1="9"x2="30"y2="9"stroke="black"stroke-dasharray="3 1"stroke-dashoffset="1"/><!--
the following red lines highlight the
offset of the dash array for each line
--><pathd="M0,5 h-3 M0,7 h3 M0,9 h-1"stroke="rgba(255,0,0,.5)"/></svg>
The offset is usually expressed in user units resolved against the pathLength but if a <percentage> is used, the value is resolved as a percentage of the current viewport.