javascript - 从 JavaScript 访问 CSS 规则

标签 javascript jquery html css dom

假设我有以下内容。

HTML:

<div id="foo"></div>

CSS:

#foo{
   width: 150px;
}

JS:

document.getElementById("foo").style.width //Equals to "" instead of 150px
$("#foo").css("width") //equals to the expected "150px"

this JSFiddle . 为什么我们可以使用 jQuery 而不是使用 vanilla JS 来访问元素的宽度?是因为外部 CSS 规则不是 DOM 的一部分吗?

最佳答案

尝试 offsetWidth .当您尝试访问 style.width 时,它只会为您提供分配给元素样式属性的宽度。但在您的情况下,它是通过 css 规则分配宽度的。

document.getElementById("foo").offsetWidth;

Fiddle

编辑:clientWidth可能会更合适,因为它为您提供了元素的内部宽度,而 offsetWidth 也考虑了边框和边距。

关于javascript - 从 JavaScript 访问 CSS 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18971795/

相关文章:

javascript - 在 beforeunload 事件处理程序中取消会使浏览器 URL 发生变化

javascript - Vue.js + Chartist : Using charts in a component

javascript - 如何更改禁用控件的颜色

javascript - 表单字段中的选项隐藏下一个字段中的选项

javascript - 通过jquery html()设置html的缺点

javascript - AngularJS 在页面上显示 svg 文件

javascript - 让 var 根据 if 语句返回特定值

javascript - 原型(prototype)更新数据

javascript - OSX Safari 上滚动事件期间 CSS 定位无响应且抖动(适用于 Chrome/Firefox)

html - 如何制作具有多个图像的 Bootstrap 缩略图 slider ....?