Tôi có sau SVG đồ họa:SVG "lấp đầy: url (# ....)" hành vi lạ trong Firefox
<svg width='36' height='30'>
<defs>
<linearGradient id="normal-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(81,82,84); stop-opacity:.4"/>
<stop offset="100%" style="stop-color:rgb(81,82,84); stop-opacity:1"/>
</linearGradient>
<linearGradient id="rollover-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(0,105,23); stop-opacity:.5"/>
<stop offset="100%" style="stop-color:rgb(0,105,23); stop-opacity:1"/>
</linearGradient>
<linearGradient id="active-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(0,0,0); stop-opacity:.4"/>
<stop offset="100%" style="stop-color:rgb(0,0,0); stop-opacity:1"/>
</linearGradient>
</defs>
<text x="8" y="25" style="font-size: 29px;" font-family="Arial">hello world</text>
</svg>'
tôi đặt fill
thuộc tính của phần tử text
thông qua CSS và chuyển đổi giữa các loại gradient tùy thuộc vào trạng thái di chuột. Điều này hoạt động tốt trong Chrome & Safari, nhưng trong Firefox, văn bản không hiển thị. Khi kiểm tra phần tử, tôi phát hiện ra rằng Firefox đang thêm none
vào cuối thuộc tính CSS fill: url(#...)
của mình. Tôi đã thử xóa từ khóa none
bằng Firebug, nhưng Firebug chỉ xóa toàn bộ thuộc tính. Tại sao chuyện này đang xảy ra?
EDIT: tôi nên lưu ý rằng nếu tôi loại bỏ CSS mà đặt fill
bất động sản, và hardcode thuộc tính fill
vào text
yếu tố (không thông qua một thuộc tính inline style
), hiển thị văn bản đúng trong tất cả các trình duyệt.
CSS thực tế của bạn trông như thế nào, để đi với SVG đó? Đối với "không" điều, "điền: url (bất cứ điều gì) không" là điều tương tự như "điền: url (bất cứ điều gì)"; cả hai đều nói rằng nếu điều tại url không có sẵn thì không có dự phòng và không có gì phải được vẽ. –
@BorisZbarsky Cảm ơn, tôi đã không nhận ra rằng 'không có gì' đã chỉ định điều gì xảy ra khi tài nguyên đầu tiên không được tìm thấy. –