zoukankan      html  css  js  c++  java
  • js怎么获取一个单位为rem的元素真实宽/高度?

    前言

    刚写一个小Demo,遇到了一个很棘手的问题。

    由于移动端需要自适应布局,所以我采取了 rem 为单位的方式进行自适应布局。

    写的过程中遇到一个需求:在页面加载完成后需要获取一个元素的真实宽度

    如:

    1  componentDidMount() {  // react 生命周期函数,在第一次渲染后调用
    2     let navItemDom = document.querySelector('.nav-item');
    3     console.log('当前元素的 offsetWidth 宽度:' + navItemDom.offsetWidth)
    4   } 

    问题出现了:明明元素的宽度显示的是 80 ,为什么打印出来是 40 , 这是个什么鬼?

    哎,烦躁。上个厕所先~

    灵光乍现,会不会跟我设置 html fontSize 的这个方法有关系,赶紧回来,打印一波~

    完犊子,为什么是先获取宽度才设置的 fontSize 。调整一波~  

    OK了~   获取宽度成功了

    总结

    获取单位为rem的元素宽度/高度,要注意生命周期的问题,一定要先设置完根节点 fontSize 以后再获取元素的真实宽度/高度

  • 相关阅读:
    [NOI Online 2021 提高组] 愤怒的小 N
    CF1474F 1 2 3 4 ...
    CF1466H Finding satisfactory solutions
    CF1336F Journey
    [PKUSC2021]代金券
    如何科学地设计对拍随机种子
    CF1168E Xor Permutations
    「JOISC 2019 Day2」两种运输
    springboot json参数
    springboot整合webserver应用
  • 原文地址:https://www.cnblogs.com/langxiyu/p/13546373.html
Copyright © 2011-2022 走看看