Element.getClientRects()何时返回多个对象的集合?

Rom*_*man 10 html javascript css dom object

每次调用时Element.getClientRects(),它都会返回一个只有一个DOMRect对象的集合.

什么时候Element.getClientRects()返回多个DOMRect对象的集合?

function handleClick() {
  console.log(event.target.getClientRects())
}
Run Code Online (Sandbox Code Playgroud)
<ul 
  style="border: 1px solid black;" 
  onclick="handleClick()"
>
    <li>Click the text to see in console</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

rv7*_*rv7 10

返回值Element.getClientRects()方法是集合DOMRect的对象,与一个相关联的每一个CSS border-box周围的元件.

当元素有多个 border-boxes(如内联元素)时,则Element.getClientRects()返回多个DOMRect对象.一个例子:

let p = document.querySelector('p');
let span = document.querySelector('span');

console.log(p.getClientRects().length);
console.log(span.getClientRects().length);
Run Code Online (Sandbox Code Playgroud)
p {
  border: 1px solid green;
}
span {
  border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)
<p>
  This is a paragraph with
  <span>Span Element having a looooooooooooooooooooooo nnnnnnnnnnnnnnnnnnnn ggggggggggggggggg text</span>
</p>
Run Code Online (Sandbox Code Playgroud)

此外,返回值取决于屏幕分辨率.尺寸越小,数量越小CSS border-boxes.