news 2026/8/30 3:37:31

106-110 操作内联样式,获取元素的样式,其他样式相关的属性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
106-110 操作内联样式,获取元素的样式,其他样式相关的属性

操作内联样式

通过JS修改的样式:

语法:元素.style.样式名 =样式值

注意:

如果CSS的样式中含有-,这种名称在JS中式不合法的,比如:background-color需要将这种样式名改为驼峰命名法,去掉-,然后将-后的字母大写
通过style属性设置样式都是内联样式,而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示
但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效,所以尽量不要为样式添加!important
通过style属性设置和读取内联样式

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>操作内联样式</title> <style> #box { width: 100px; height: 100px; background-color: red; } </style> <script> window.onload = function () { var button = document.getElementById("button"); button.onclick = function () { box.style.width = "300px"; box.style.height = "300px"; box.style.backgroundColor = "yellow"; }; var button1 = document.getElementById("button1"); button1.onclick = function () { alert(box.style.width); alert(box.style.height); alert(box.style.backgroundColor); }; }; </script> </head> <body> <div id="box"></div> <button id="button">点我一下</button> <button id="button1">查看内联样式</button> </body> </html>

获取元素的样式

currentStyle

语法:元素.currentStyle.样式名

它可以用来读取当前正在显示的样式,如果当前元素没有设置该样式,则获取它的默认值

提示:只有IE支持,其他浏览器不支持

getComputedStyle() 推荐

这个方法来获取元素当前的样式,这个方法是window的方法,可以直接使用,需要两个参数

第一个:要获取的样式的元素
第二个:可以传一个伪参数,一般传null
该方法会返回一个对象,对象中封装了当前元素对应的样式(属性),可以通过对象.样式名来读取样式,如果获取的样式没有设置,则会获取到真实的值,而不是默认值,比如:没有设置width,它不会获取到auto,而是一个长度,但是该方法不支持IE8及以下的浏览器

通过currentStyle和和getComputedStyle()读取到的样式都是只读的,不能修改,如果要修改必须通过style属性

自定义函数实现获取元素当前显示样本

定义一个函数,用来获取指定元素的当前的样式

参数:obj 要获取样式的元素

​ name 要获取的样式名

/** * 这种思想常用来解决兼容性问题 * @param obj 对象 * @param name 字符串属性 * @returns {*} */ function getStyle(obj ,name){ if(window.getComputedStyle){ //这里最好加window. 因为不加的话,他就是变量,变量没找到会报错,下面就没有机会执行了, // 要是属性的话,是undefined,就转false,去执行else,不会报错了。 return getComputedStyle(obj,null)[name]; }else { return obj.currentStyle[name]; } }

其他样式相关的属性

clientWidth clientHeight

这两个属性可以获取元素的可见宽度于高度,这些【包括后面的】属性都是不带px的,返回都是一个数字,可以直接进行计算,会获取元素的高度和宽度,包括内容区和内边距,这些属性都是只读的,不能修改。

offsetWidth offsetHeight

获取元素整个宽度和高度,包括内容区、内边距和边框

alert(box.offsetWidth);

offsetParent

可以用来获取当前元素是的定位父元素

会获取离当前元素最近的开启了定位的祖先元素
如果所有的祖先元素都没有开启定位,则会返回body

var op =box.offsetParent

offsetLeft

当前元素相对于其定位父元素的水平

alert(box.offsetLest);

offsetTop

当前元素相对于其定位父元素的垂直偏移量

alert(box.offsetLeft)

scrollWitdth

scrollHeight

可以获取元素整个滚动区域的宽度和高度

alert(box.scrollWidth);

scrollLeft

可以获取水平滚动读条的距离

scrollTop

可以获取垂直滚动条滚动的距离

alert(box.scrollTop);

技巧:

scrollHeight -scrollTop == clientHeight说明垂直滚动条到底了

scrollWidth - scrollLeft == clientWidth说明水平滚动条到底了

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #box { width: 300px; height: 500px; background-color: green; overflow: auto; } </style> <script> /** * 当垂直表单滚动到底时,使表单可选项可用 * onscroll * 该事件会在元素滚动条滚动时触发 */ window.onload = function () { var box = document.getElementById("box"); var inputs = document.getElementsByTagName("input"); box.onscroll = function () { if (box.scrollHeight - box.scrollTop == box.clientHeight) { /** * disabled属性设置一个元素是否可以 * 如果true,则表示禁用 * 如果使false,则表示启用 * @type {boolean} */ inputs[0].disabled = false; inputs[1].disabled = false; } }; }; </script> </head> <body> <div > <h3>注册</h3> <p id="box">年少轻狂的岁月沉淀下来的是哪些再也回不到的过去,而总让人感叹的则是未能珍惜而失去的那些, 但这些也恰恰是我们让你去体会的,因为年少轻狂的岁月,一生也只有一次。世间最珍贵的不是得不到或已失去的,而是现在能把握的。 我们生活在一个复杂又充满无奈的世界,身上背负着太多太多的责任和使命, 有时我们处理不当,就会不堪重负,难以忍受。最宽阔的是海洋,比海洋更宽阔的是天空, 比天空更宽阔的是人的胸怀。当你紧握双手,里面什么也没有, 当你打开双手,世界就在你手中。 年少轻狂的岁月沉淀下来的是哪些再也回不到的过去,而总让人感叹的则是未能珍惜而失去的那些, 但这些也恰恰是我们让你去体会的,因为年少轻狂的岁月,一生也只有一次。世间最珍贵的不是得不到或已失去的,而是现在能把握的。 我们生活在一个复杂又充满无奈的世界,身上背负着太多太多的责任和使命, 有时我们处理不当,就会不堪重负,难以忍受。最宽阔的是海洋,比海洋更宽阔的是天空, 比天空更宽阔的是人的胸怀。当你紧握双手,里面什么也没有, 当你打开双手,世界就在你手中。 年少轻狂的岁月沉淀下来的是哪些再也回不到的过去,而总让人感叹的则是未能珍惜而失去的那些, 但这些也恰恰是我们让你去体会的,因为年少轻狂的岁月,一生也只有一次。世间最珍贵的不是得不到或已失去的,而是现在能把握的。 我们生活在一个复杂又充满无奈的世界,身上背负着太多太多的责任和使命, 有时我们处理不当,就会不堪重负,难以忍受。最宽阔的是海洋,比海洋更宽阔的是天空, 比天空更宽阔的是人的胸怀。当你紧握双手,里面什么也没有, 当你打开双手,世界就在你手中。 </p> </div> <input type="checkbox" disabled="disabled"/>已阅读协议,我一定遵守 <input type="submit" value="注册" disabled="disabled" /> </body> </html>

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 10:47:31

AI助力开发:用VSCode摸鱼插件提升编程效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个VSCode插件&#xff0c;利用AI模型&#xff08;如Kimi-K2或DeepSeek&#xff09;实现智能代码补全和错误检测功能。插件应能根据当前代码上下文推荐最佳代码片段&#xff0…

作者头像 李华
网站建设 2026/8/29 13:36:30

如何零基础搭建本地AI搜索引擎:从Google依赖到自主掌控

如何零基础搭建本地AI搜索引擎&#xff1a;从Google依赖到自主掌控 【免费下载链接】farfalle &#x1f50d; ai search engine - run local or cloud language models 项目地址: https://gitcode.com/GitHub_Trending/fa/farfalle 还在为Google搜索API的高昂费用和复杂…

作者头像 李华
网站建设 2026/8/29 11:34:30

AI如何帮你快速搭建RAID10存储系统?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个RAID10磁盘阵列配置工具&#xff0c;支持自动检测可用磁盘、生成最优RAID10配置方案&#xff0c;并提供一键执行脚本功能。要求工具能根据磁盘数量、容量和性能自动推荐最佳…

作者头像 李华
网站建设 2026/8/29 15:13:20

GC5035图像传感器深度解析与完整指南

GC5035图像传感器深度解析与完整指南 【免费下载链接】GC5035CSP图像传感器数据手册 GC5035 是一款高质量的 500 万像素 CMOS 图像传感器&#xff0c;专为移动电话摄像头应用和数码相机产品设计。GC5035 集成了一个 2592H x 1944V 像素阵列、片上 10 位 ADC 和图像信号处理器。…

作者头像 李华
网站建设 2026/8/29 8:04:11

终极串口调试助手:RS485/RS232设备测试完全指南

终极串口调试助手&#xff1a;RS485/RS232设备测试完全指南 【免费下载链接】RS485232串口调试助手 本仓库提供了一个名为“RS485/232串口调试助手.zip”的资源文件下载。该文件是一个串口调试工具&#xff0c;适用于RS485和RS232串口设备的调试和测试。 项目地址: https://g…

作者头像 李华