SVG 1.2 Gói thêm văn bản nhỏ, nhưng hầu hết các triển khai SVG mà bạn sẽ tìm thấy trong trình duyệt (ngoại trừ Opera) đã không triển khai tính năng này. Thông thường, tùy thuộc vào bạn, nhà phát triển, định vị văn bản theo cách thủ công.
Đặc tả SVG 1.1 cung cấp một cái nhìn tổng quan về giới hạn này và các giải pháp khả thi để khắc phục nó:
Mỗi phần tử 'văn bản' làm cho một chuỗi văn bản được hiển thị. SVG thực hiện không ngắt dòng tự động hoặc gói từ. Để đạt được hiệu quả của nhiều dòng văn bản, hãy sử dụng một trong các phương pháp sau:
- Tác giả hoặc gói tác giả cần tính toán trước các ngắt dòng và sử dụng nhiều phần tử 'văn bản' (một cho mỗi dòng văn bản).
- Tác giả hoặc gói tác giả cần tính toán trước các ngắt dòng và sử dụng một phần tử 'văn bản' duy nhất với một hoặc nhiều phần tử con 'tspan' với các giá trị phù hợp cho các thuộc tính 'x', 'y', 'dx' và 'dy' để đặt vị trí bắt đầu mới cho những nhân vật bắt đầu dòng mới. (Cách tiếp cận này cho phép lựa chọn văn bản của người dùng trên nhiều dòng văn bản - xem phần Chọn văn bản và các thao tác trong bảng tạm.)
- Thể hiện văn bản sẽ được hiển thị trong một không gian tên XML khác, chẳng hạn như nội tuyến được nhúng XHTML [XHTML] trong phần tử 'ForeignObject'. (Lưu ý: ngữ nghĩa chính xác của phương pháp này không hoàn toàn được xác định tại thời điểm này.)
http://www.w3.org/TR/SVG11/text.html#Intributiontion
Là một nguyên thủy, gói văn bản có thể được mô phỏng bằng cách sử dụng dy
thuộc tính và tspan
các thành phần, và như được đề cập trong thông số kỹ thuật, một số công cụ có thể tự động hóa việc này. Ví dụ: trong Inkscape, chọn hình dạng bạn muốn và văn bản bạn muốn và sử dụng Văn bản -> Flow vào Khung. Điều này sẽ cho phép bạn viết văn bản của bạn, với gói, sẽ bao gồm dựa trên giới hạn của hình dạng. Ngoài ra, hãy đảm bảo bạn làm theo các hướng dẫn này để nói với Inkscape để duy trì khả năng tương thích với SVG 1.1:
http://wiki.inkscape.org/wiki/index.php/FAQ#What_about_flowed tựa.3F
Hơn nữa, có một số thư viện JavaScript có thể được sử dụng để tự động hóa gói văn bản một cách linh hoạt:
http://www.carto.net/ con / sgg / textFlow /
Thật thú vị khi lưu ý giải pháp của CSVG trong việc gói hình dạng cho một thành phần văn bản (ví dụ: xem ví dụ "nút" của họ), mặc dù điều quan trọng cần đề cập là việc triển khai của họ không thể sử dụng được trong trình duyệt:
http://www.csse.monash.edu .au / ~ clm / csvg / about.html
Tôi đang đề cập đến điều này bởi vì tôi đã phát triển một thư viện lấy cảm hứng từ CSVG cho phép bạn làm những việc tương tự và hoạt động trong các trình duyệt web, mặc dù tôi chưa phát hành nó.