javascript - jquery innerWidth/outerWidth 和 javascript clientWidth/offsetWidth 在 chrome 上给出了错误的值

标签 javascript jquery html css google-chrome

我有一个 HTML 标签 <a>div 里面. div 样式使用字体粗细为 700 的 'Lato' 字体。

当我尝试获取 a 时标记宽度,我在 chrome 中得到了错误的值。

我试过:

width()
outerWidth()
innerWidth()
clientWidth
offsetWidth

他们都给我错误的值(value)观。

我还注意到,当我删除 font-weight css 样式时,这个问题就消失了。

有什么想法吗?

谢谢

最佳答案

<a>是一个内联元素。因此它不使用盒子模型。把它想象成“滑”。我不确定为什么它会使用不同的字体粗细。

您可能想要测量 <a> 的第一个 block 级父级的 innerWidth .

类似于:

$('<a>').closest('div').innerWidth();

或者,您可以使用 css 使其成为一个 block ,然后您现有的 js 应该可以工作:

a { display: inline-block; }

关于javascript - jquery innerWidth/outerWidth 和 javascript clientWidth/offsetWidth 在 chrome 上给出了错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049752/

相关文章:

John Resig 的 JavaScript 损坏的闭包和包装函数 #62 和 #63

javascript - 干扰 .innerHTML 输出触发器

javascript - 根据背景图像删除元素

html - 一侧有扩展边框的框

javascript - 在跨度的 onclick 事件提交表单时,如何避免浏览器发出确认消息?

javascript - json,如何返回特定值而不是对象

javascript - 如何打开特定选项卡处于事件状态的 Bootstrap 模式

jquery 选择器排除包含焦点输入的元素

php - 在 Apple 设备上渲染带有标签的泰文字符会中断吗?

javascript - 有没有简单的教程可以让我以node.js的方式思考?