10

Google Chrome 24では、要素によって参照される<use>要素がドキュメントの後半で定義されている場合、その要素はレンダリングされません。要素のドキュメントでは、要素の順序に関連するものは何もありませんでしたuse

この動作は未定義であり、ブラウザ間で一貫しているとは期待できませんか、それともChromeのバグですか?

この例を以下に示します(この質問から少し変更されています)。青い円は期待どおりにレンダリングされ、赤はそれほどレンダリングされません。Firefox17とIE9は、私が期待するように両方の円をレンダリングします。同じコンテンツが外部として参照されている場合<img />、両方の円もレンダリングされます。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Chrome use-tag bug?</title>
</head>
<body>
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200">
        <defs>
            <g id="test2">
                <circle cx="50" cy="50" r="25" fill="blue"/>
            </g>
        </defs>

        <g>
            <rect x="0.5" y="0.5" width="199" height="199" stroke="black" fill="none"/>
            <use xlink:href="#test1" x="0" y="0"/>
            <use xlink:href="#test2" x="0" y="0"/>
        </g>

        <defs>
            <g id="test1">
                <circle cx="100" cy="100" r="25" fill="red"/>
            </g>
        </defs>
    </svg>
</body>
</html>

更新:Chrome39で動作しているようです。

4

1 に答える 1