javascript - 确定 DOM 元素可能增长到的最大宽度?
问题描述
我有兴趣查询浏览器中 DOM 元素可能增长到的最大大小。众所周知,一个空的 DOM 元素(没有样式)的 .clientWidth 为 0,但添加了 text/images/etc。到元素可能会导致其宽度增加。以下面结构中的 DOM 元素为例thisOne
:
<table style="padding: 20px; border-spacing: 100px">
<tr>
<td></td>
<td>
<div id="thisOne"></div>
</td>
</tr>
</table>
目前#thisOne.clientWidth === 0
,但如果我向它附加大量文本,它的宽度会越来越大,但直到它到达document.body.clientWidth
,因为列、填充类等。我想知道如何计算出对象的当前最大宽度不做类似的事情:
const thisOne = document.getElementById('thisOne');
thisOne.style.visibility = 'hidden'; // do not display to user.
thisOne.innerHTML = 'blah '.repeat(2000);
const maxWidth = thisOne.clientWidth;
thisOne.innerHTML = '';
thisOne.style.visibility = 'visible';
基于 JQuery 的答案很好,但知道纯 HTML/JS 版本会更好。
(如果有人想知道,我打算将音乐符号的 SVG 放入 div,但我希望它通过在添加之前给渲染器一个适合的宽度来很好地包裹到其他行上)
解决方案
推荐阅读
- c++ - 如何在算法中实现构建?
- python - 在 python 中创建生产者和消费者应用程序
- sql - SQL Server - 单个表上的多个插入导致死锁
- r - 根据单列查找所有唯一行并排除所有重复行
- angular - 当我点击另一个页面的链接时,我希望我的主页被替换,但是,另一个页面被添加到我的主页
- python - 如何在 Python 中的特定数据列上应用 Shapiro-Wilk 测试
- asp.net-mvc - 为什么 Visual Studio 2019 不创建 Content、AppData、Scripts 文件夹
- c - 如何识别没有订阅者的节点?(零MQ)
- java - Java Spring 启动多个安全适配器
- excel - Excel VBA 用户表单 - 在用户名功能的组合框中显示相关团队