13 -webkit-column-gap: 10px;
17 display: inline-block;
18 vertical-align: bottom;
23 border: solid dodgerblue;
24 -webkit-box-sizing: border-box;
28 -webkit-appearance: none;
31 background-color: lightblue;
35 input[type="range"]::-webkit-slider-thumb {
36 -webkit-appearance: none;
40 The blue borders should coincide with light blue squares, like this:
41 <span style="display: inline-block; background-color: lightblue; border: solid dodgerblue; width: 19px; height: 19px;"></span>.
42 There should be none of this:
43 <span style="display: inline-block; background-color: lightblue; width: 25px; height: 25px;"></span>
45 <span style="display: inline-block; border: solid dodgerblue; width: 19px; height: 19px;"></span>.
47 <div class="columns" id="t1">
52 <br><span id="t2">x y z</span>
56 <br><div id="t3">x y z</div>
60 <br><div id="t4"><br>y z</div>
64 <br><div><br><input id="t5" type="range"></div>
68 <br><div><br><img id="t6" style="width: 25px; height: 25px; background-color: lightblue;"></div>
72 Except here, where the blue border should be around the bigger slice of the blue square, on the right.
76 <div id="t7" style=" margin-top: 40px; width: 25px; height: 25px; background-color: lightblue;"></div>
80 function placeMarker(clientRect)
82 var marker = document.body.appendChild(document.createElement("div"));
83 marker.className = "marker";
84 marker.style.left = clientRect.left + "px";
85 marker.style.top = clientRect.top + "px";
86 marker.style.width = clientRect.width + "px";
87 marker.style.height = clientRect.height + "px";
90 function placeMarkersForRange(range, startOffset)
92 if (startOffset === undefined)
95 var clientRects = range.getClientRects();
96 for (var i = startOffset; i < clientRects.length; ++i)
97 placeMarker(clientRects[i]);
100 var range = document.createRange();
102 var textNode = document.getElementById("t1").firstChild.nextSibling.nextSibling;
103 range.setStart(textNode, 0);
104 range.setEnd(textNode, 5);
105 placeMarkersForRange(range);
107 textNode = document.getElementById("t2").firstChild;
108 range.setStart(textNode, 0);
109 range.setEnd(textNode, 5);
110 placeMarkersForRange(range);
112 textNode = document.getElementById("t3").firstChild;
113 range.setStart(textNode, 0);
114 range.setEnd(textNode, 5);
115 placeMarkersForRange(range);
117 var block = document.getElementById("t4");
118 range.selectNode(block);
119 placeMarkersForRange(range, 1);
121 var slider = document.getElementById("t5");
122 range.selectNode(slider);
123 placeMarkersForRange(range);
125 var image = document.getElementById("t6");
126 range.selectNode(image);
127 placeMarkersForRange(range);
129 var div = document.getElementById("t7");
130 range.selectNode(div);
131 placeMarkersForRange(div);