#html #svg
#HTML #svg
Вопрос:
Я получил следующий svg:
<svg>
<text x="10" y="15">
<tspan dx="0">Text 1</tspan>
<tspan dx="15">Text 2</tspan>
<tspan dx="15">Text 3</tspan>
<tspan dx="15">Text 4</tspan>
</text>
<text x="30" y="30">
<tspan dx="0">Text 5</tspan>
<tspan dx="15">Text 6</tspan>
<tspan dx="15">Text 7</tspan>
<tspan dx="15">Text 8</tspan>
</text>
<text x="50" y="45">
<tspan dx="0">Text 1</tspan>
<tspan dx="15">Text 2</tspan>
<tspan dx="15">Text 3</tspan>
<tspan dx="15">Text 4</tspan>
</text>
<text x="10" y="60">
<tspan dx="0">Text 5</tspan>
<tspan dx="15">Text 6</tspan>
<tspan dx="15">Text 7</tspan>
<tspan dx="15">Text 8</tspan>
</text>
</svg>
Это всего лишь пример, и он станет чрезвычайно сложным. Как вы можете видеть, мне приходится каждый раз изменять значения x и y для новой строки, чтобы правильно расположить ее.
Возможно ли сделать эти значения относительными? Сетка всегда будет выглядеть одинаково, если они относительны, я могу установить их один раз или поместить их в переменную и скопировать, вставить все.
Например, что-то вроде этого (я знаю, что это не работает / выглядит одинаково, просто чтобы продемонстрировать мою идею)
<svg>
<text dx="15" dy="20">
<tspan dx="15">Text 1</tspan>
<tspan dx="15">Text 2</tspan>
<tspan dx="15">Text 3</tspan>
<tspan dx="15">Text 4</tspan>
</text>
<text dx="15" dy="20">
<tspan dx="15">Text 5</tspan>
<tspan dx="15">Text 6</tspan>
<tspan dx="15">Text 7</tspan>
<tspan dx="15">Text 8</tspan>
</text>
<text dx="15" dy="20">
<tspan dx="15">Text 1</tspan>
<tspan dx="15">Text 2</tspan>
<tspan dx="15">Text 3</tspan>
<tspan dx="15">Text 4</tspan>
</text>
<text dx="15" dy="20">
<tspan dx="15">Text 5</tspan>
<tspan dx="15">Text 6</tspan>
<tspan dx="15">Text 7</tspan>
<tspan dx="15">Text 8</tspan>
</text>
</svg>
Комментарии:
1. Если вы работаете с большими объемами текста, вам будет лучше в мире HTML, а не SVG.
2. Это правда, но я не хочу, чтобы это выглядело как заполнение ключевых слов для Google, потому что там будет несколько повторяющихся коротких слов
3. Вы не можете иметь одинаковые относительные смещения в каждой строке, если смещение время от времени сбрасывается (как это происходит между третьей и четвертой строками в вашем примере).
4. @PaulLeBeau ну, хорошо. Но это не имеет значения. Он будет помещен внутрь оболочки, и я могу просто сдвинуть его влево с тем же эффектом. Но как бы вы сделали относительное смещение y?
5. Ну, вы можете использовать
dy="15"
для новой строки, если все это находится внутри одного и того же<text>
элемента. Но вам всегда нужно будет настроить начальную позицию X сx
помощью илиdx
(илиtransform
)