一个 Chrome 的 Bug
从任意文章页使用超链接跳转到分类页,使用 window.getComputedStyle(container, null).getPropertyValue("margin-left");
获取到默认值 0px。
滑动到顶部该问题消失。
container 的 margin-left
属性的值是 margin:auto
分配的,window.getComputedStyle
用于获取值。
与 element.propertyName
获取到元素的 被赋予的属性的值 不同, window.getComputedStyle
获取到的值是元素实际拥有的值(不会因 CSS 的 filter
改变)。
由于我是为了让导航栏自适应页面两侧的留白,本身就是通过获取 main-container 的 margin-left 得到,所以改用 container.offsetLeft
获取 main-container 距离窗口左侧的距离便可以解决这个问题。
注意,container.offsetLeft
和上述两种方法的最大区别在于 offsetLeft
给出的值的数据类型是 BigInt (整数,无单位),而前两者给出 Value。
虽然实际上三者读取到的值的单位都为 px。