hãy có một cái nhìn tại Bút này:Tại sao tôi không thể tham khảo gradient tuyến tính SVG được xác định trong một tệp bên ngoài (máy chủ sơn)?
http://codepen.io/troywarr/pen/VYmbaa
Những gì tôi đang làm gì ở đây là:
- xác định một biểu tượng SVG (
<symbol>
) - xác định tập tin SVG lên tuyến tính gradient (
<linearGradient>
) - sử dụng phần tử
<use>
để tham chiếu biểu tượng SVG mà tôi đã tạo - trong CSS, xác định hai lớp:
external
, có sự tham khảo gradient tuyến tính theo quy định tại this external.svg
file (nhấp chuột phải và xem nguồn)internal
, có sự tham khảo gradient tuyến tính được định nghĩa trong HTML địa phương (đó là , tôi tin rằng, hiệu quả giống với một trong các tập tin bên ngoài)
Bởi vì tôi đã áp dụng các lớp internal
tới phần tử <svg>
ở dưới cùng o Ví dụ HTML, gradient được áp dụng, vẽ một dấu kiểm màu gradient màu xanh lam. Đó là những gì tôi theo sau.
Nhưng, nếu bạn chuyển đổi các lớp internal
-external
trong ví dụ HTML, dấu kiểm là không còn có thể nhìn thấy:
http://codepen.io/troywarr/pen/vEymKX
Khi tôi xem "Network" tab Chrome Inspector, tôi không thấy trình duyệt đang cố gắng tải tệp SVG. Có vấn đề gì với cú pháp của tôi không, hay có chuyện gì khác đang diễn ra ở đây?
Nó ít nhất trông như tôi đang làm điều này đúng, dựa trên một vài tài liệu tham khảo tôi đã tìm thấy:
- http://www.w3.org/TR/SVG/painting.html#SpecifyingPaint
- http://www.w3.org/TR/SVG/linking.html#IRIReference
- https://stackoverflow.com/a/7118142/167911
Nhưng , không có gì tôi đã cố gắng cho đến nay đã cho phép tôi tham khảo một gradient tuyến tính được xác định trong một bên ngoài .svg
tệp.
Cảm ơn bạn đã trợ giúp!
đây từ năm 2016 và nó vẫn còn là một vấn đề. Muốn tạo swatches SVG và tham khảo nó để điền vào các tệp SVG khác nhưng nó không hoạt động trong Chrome/Safari/Webkit. –