<!doctype html>
<html>
<head>
<style>

target1, target2, target3, target4 {
    width: 100px;
    height: 100px;
    display: block;
    float: left;
    background-color: white;
    color: white;
    border: none;
}

target1 {
    background-color: cyan;
    border: 2px solid darkblue;
    color: maroon;
}

target2 {
    background-color: red;
}
target3 {
    border: 2px solid blue;
}
target4 {
    color: green;
}
</style>
</head>
<body>
    <p>Test styling of elements using their local name. Matching the name should be case-insensitive for HTML, case-sensitive for XML.</p>
    <div id="test-cases">
        <target1>Target</target1>
        <target1>Target</target1>
        <target1>Target</target1>
        <xml xmlns="https://www.webkit.org/awesome">
            <target1>Target</target1>
            <target1>Target</target1>
            <target1>Target</target1>
        </xml>
    </div>
</body>
<script>
    var xmlDocument = new DOMParser().parseFromString('<xml xmlns="https://www.webkit.org/awesome"><target2>Target</target2><target3>Target</target3><target4>Target</target4></xml>', 'text/xml');
    var testCases = document.getElementById("test-cases");
    testCases.appendChild(document.importNode(xmlDocument.documentElement, true));
</script>
</html>
