如何获取html元素的宽度并将像素转换为百分比[关闭]

Posted

技术标签:

【中文标题】如何获取html元素的宽度并将像素转换为百分比[关闭]【英文标题】:How to get width of a html element and convert from pixel to persentage [closed] 【发布时间】:2021-10-19 15:10:30 【问题描述】:

如何将 html 元素的宽度从像素转换为百分比(相对于屏幕尺寸)

例如从 DOM 中获取这个元素(屏幕宽度为 1366px):

<div style="width:683px">hello</div>

并转换为这个元素(683px 是 1366px 的 50%):

<div style="width:50%">hello</div>

【问题讨论】:

为什么不从 50% 开始? 因为元素是由像素库在运行时生成的,我想将其转换为 '%' 单位。 【参考方案1】:

您可以使用 querySelector 获取元素的宽度,然后除以屏幕宽度:

const div = document.querySelector('.div');
div.style.width = `$(div.offsetWidth / screen.width) * 100%`;
.div
background: black;
height: 60px;
width: 683px;
&lt;div class="div"&gt;&lt;/div&gt;

【讨论】:

【参考方案2】:

你可以抓取当前窗口的宽度,然后分割它。

function getWidth()
let width = window.innerWidth;
let half = width * 0.50;

随心所欲地使用它。

【讨论】:

谢谢,但屏幕大小和元素宽度是完全动态的。【参考方案3】:

获取元素的宽度

var divWidth = document.getElementById("mydiv").offsetWidth

屏幕宽度已经在screen.width

获取百分比值

percentDivWidth = divWidth * 100 / screen.width;

然后只替换宽度

document.getElementById("mydiv").style.width = percentDivWidth + '%';

我没有尝试过,但它应该可以工作,这不依赖于 jQuery 或其他库。

【讨论】:

以上是关于如何获取html元素的宽度并将像素转换为百分比[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将元素宽度指定为像素百分比的方法

将像素转换为百分比

将元素高度/宽度设置为百分比和像素值的组合[重复]

将 HTML5 画布转换为 IMG 元素

jquery如何获得宽度为百分比的元素的宽度?

如何将最大宽度设置为百分比和像素?