Javascript 获取相对单位值

Javascript 获取相对单位值,javascript,css,Javascript,Css,我想知道如何获得相对单位值 例如,我有一个宽度为其视口宽度80%的元素,我想用javascript获取宽度值 console.logNumber.parseIntdocument.getElementById'maxwidth'.style.width; 替换这个 Number.parseInt(document.getElementById('maxwidth').style.width); 与 console.logNumber.parseIntdocument.getElementB

我想知道如何获得相对单位值 例如,我有一个宽度为其视口宽度80%的元素,我想用javascript获取宽度值

console.logNumber.parseIntdocument.getElementById'maxwidth'.style.width; 替换这个

Number.parseInt(document.getElementById('maxwidth').style.width);

console.logNumber.parseIntdocument.getElementById'maxwidth'.clientWidth; 以像素为单位转换vw值的步骤

document.documentElement.clientWidth * vw / 100
e、 如果你的视口是400px宽,元素是80vw,那么它实际上是

400 * 80vw / 100 = 320px
并且它应该在窗口的每个调整大小事件中重新计算

否则可以使用.getComputedStyle

相对宽度 你应该自己计算一个元素的相对宽度,以百分比表示的宽度。使用此功能可以执行此操作

函数getRelativeWidthelement{ var offsetParent=element.offsetParent | element; 返回元素.offsetWidth/offsetParent.offsetWidth*100.toFixed3+'%'; } var element=document.getElementById'maxwidth' console.loggetRelativeWidthelement
如果希望以非相对单位获取元素的宽度,可以简单地使用如下方法:

const style = window.getComputedStyle(document.getElementById("maxwidth"), null);
// style.width is your element's width expressed in pixels

它工作得很好。。。也许在你的真实代码中你没有内联设置这个值?
let d   = document.querySelector('div'),
    gcs = window.getComputedStyle(d, null);

window.addEventListener('resize', () => {
    let w = gcs.getPropertyValue("width");
    d.textContent = "current width: " + w;  
});
const style = window.getComputedStyle(document.getElementById("maxwidth"), null);
// style.width is your element's width expressed in pixels