获取、设置及移除单个内联 CSS 属性


每个 HTML 元素都有个 style 属性,可以用来插入针对该元素的内联 CSS 属性。

<div style='background-color:black; height:100px; width:100px'></div>
<script>var divStyle = document.querySelector('div').style;// 输出一个 CSSStyleDeclaration 对象,仅包含该元素的内联样式console.log(divStyle);// setdivStyle.backgroundColor = 'red';// getconsole.log(divStyle.backgroundColor);// remove divStyle.backgroundColor = '';// style 对象是个 CSSStyleDeclaration 对象,它不仅提供了单个 CSS 属性的访问方式// 也提供 setProperty()、getPropertyValue()以及removeProperty() 方法// setdivStyle.setProperty('height', '200px');// getconsole.log(divStyle.getPropertyValue('height'));// removedivStyle.removeProperty('height');</script>

注意: style 对象中的属性名并不含 CSS 属性名中常用的横线。转译非常简单,移除横线并使用驼峰体。其中一个不能直接转换的 CSS 属性是 float,由于 float 是 Javascript 的保留字,因此不能用作属性名。“DOM2级样式”规范规定样式对象上相应的属性名应该是 cssFloat,ff、Safari、opera和chrome都支持这个属性,而 IE 支持的则是 styleFloat。

获取、设置及移除所有内联 CSS 属性


<div style='background-color:black; height:100px; width:100px'></div>
<script>var div = document.querySelector('div'), divStyle = div.style;// 使用 CSSStyleDeclaration 对象的 cssText 属性,和 getAttribute() 与 setAttribute() 方法// 可以用 Javascript 字符串获取、设置及移除 style 属性的整个值(即所有内联 CSS 属性)divStyle.cssText = '';divStyle.cssText = 'background-color:red; height:200px; width: 200px';// ---- div.setAttribute('style', 'background-color:blue; height:100px; width:100px');console.log(div.getAttribute('style'));div.removeAttribute('style');
</script>

使用 getComputedStyle() 获取元素的已计算样式


style 属性值只包含通过 HTML 中的 style 属性定义的 CSS。要获得元素级联包括内联样式后的 CSS(即从内联样式表单,外部样式表单和浏览器样式表单级联),你可以用 getComputedStyle()。该方法提供一个只读的类似 style 的 CSSStyleDeclaration 对象。这个方法接受两个参数:要取得计算样式的元素和一个伪元素字符串(例如":hover"),如果不需要伪元素信息,第二个参数可以为 null。

<style>div {background-color: black;width: 100px;}
</style><div style='background-color:red; height:100px';></div><script>// document.defaultView 在浏览器中即为 window 对象var divStyle = document.defaultView.getComputedStyle(document.querySelector('div'), null);console.log(divStyle.width);  // 100px
</script>

getComputedStyle() 方法遵照 CSS 声明优先级(内联 > style > link),同时它所返回的 CSSStyleDeclaration 对象不能设定任何值,因为它是只读的。

IE 不支持 getComputedStyle() 方法,但它有一种类似的概念,在 IE 中,每个具有 style 属性的元素还有一个 currentStyle 属性,这个属性是 CSSStyleDeclaration 的实例,包含当前元素全部计算后的样式,同样只是可读。

<style>div {background-color: black;width: 100px;}
</style><div id='div'style='background-color:red; height:100px';></div><script>// 我也不知道为啥要用onload,去掉就报错说找不到对象...window.onload = function() {var divStyle = document.getElementById('div').currentStyle;console.log(divStyle.width);  // 100px}
</script>

兼容写法(2016-03-14 add):

function getStyle(ele, type) {if (window.getComputedStyle) return window.getComputedStyle(ele, null)[type];else return ele.currentStyle[type];
}

DOM与元素节点内联样式相关推荐

  1. JS 修改元素的内联样式

    JS修改元素样式 语法:元素.style.样式名=样式值 例如:documents.getElementByName("demo").style.width="200px ...

  2. css vue 内联_vue 内联样式style中的background

    在我们使用vue开发的时候   有很多时候我们需要用到背景图 这个时候会直接使用 内联样式 直接把你拿到的数据拼接上去 注意  在vue中直接使用style时 花括号一定别忘记 还有就是你的url一定 ...

  3. css vue 内联_04-Vue基础-css和内联样式绑定

    v-bind 及 class 与 style 绑定 1. 绑定 class 的集中方式 1.1. 对象语法 给class设置一个对象,可以动态切换class.例如: var app = new Vue ...

  4. JavaScript基础13-day15【DOM增删改、DOM添加删除记录、操作内联样式、获取元素的样式、DOM Element 对象、滚动条练习、事件对象、div跟随鼠标移动、事件冒泡】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  5. 使用DOM操作内联样式

    使用DOM操作css 通过JS修改元素的样式 语法:元素.style.样式名 = 样式值 注意:如果css的样式名中含有 - ,这种名称在JS中是不合法的比如 background-color 需要将 ...

  6. CSS网页布局心得(样式优先级,块级元素,内联元素,display,position,float)

    文章涉及的知识点:CSS,样式优先级,块级元素,内联元素,display,position,float 使用top;right; bottom;right时,要注意是对于哪个元素进行定位,要保证定位元 ...

  7. 你真的知道css三种存在样式(外联样式、内部样式、内联样式)的区别吗?

    css样式在html中有三种存在形态: 内联样式:<div style="display: none"></div> 内部样式: <style> ...

  8. html清除内联样式,是否可以使用jQuery删除内联样式?

    更新:虽然以下解决方案有效,但有一种更简单的方法.见下文. 这就是我想出来的,我希望这对你或其他任何人都有用:$('#element').attr('style', function(i, style ...

  9. 第 10 节 操作内联样式

    第10节 操作内联样式 操作内联样式 操作内联样式 1.通过JS修改元素的样式: 1)语法:元素.style.样式名 = 样式值 注意: 如果CSS的样式名中含有 -,这种名称在JS中是不合法的,比如 ...

最新文章

  1. Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘箱图(Marginal Boxplot)
  2. springboot 得到端口_带你入门SpringBoot
  3. 【CVPR2020论文解读】300米远程深度估计:港科大重磅开源自动驾驶深度感知新技术,远超现有雷达...
  4. SQLServer存储过程/函数加/解密(轉)
  5. matlab axis 用法,MATLAB中regionprops的用法
  6. 密码学哈希函数_哈希函数在密码学中的应用
  7. matlab建立的发动机的模型,奇瑞使用基于模型的设计实现发动机管理系统软件的自主开发...
  8. 微信小程序_(校园视)开发视频的展示页_上
  9. bzoj20892090: [Poi2010]Monotonicity
  10. CSP202012-1 期末预测之安全指数(100分)【序列处理】
  11. 阿里云祝顺民:未来的网络是云网一体,应用感知不到网络的存在
  12. CF438D The Child and Sequence
  13. 数据库防火墙的性能和高可用性分析
  14. html5拼图游戏canvas,canvas拼图游戏
  15. 社交红利的诞生与初期创业
  16. 西南石油大学计算机科学学院李欣,南充西南石油大学财经学院学霸寝室 6女生一年70张奖状...
  17. 英孚教育全面上云与Serverless构建之路
  18. API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] item_get - 根据ID取商品详情
  19. 【李刚-21天通关Python】第一章:Python入门与字符串
  20. Python语音机器人控制STM32开发流程

热门文章

  1. PostgreSql+PostGIS和uDig的安装
  2. 谁能畅游智能电视红海:联想K82,还是乐视?
  3. 通过FTP4J 实现 FTPS 连接
  4. PermGen space处理方法1
  5. 给opentaps添加定制的表和字段
  6. 三条Windows 7小技巧
  7. 当 JS 工程师遇到了 TypeScript 会发生什么?
  8. 大牛推荐的30本经典编程书籍,从Python到前端全系列。
  9. mysql dif_mysqldiff实现MySQL数据表比较
  10. java printstacktrace_为什么异常. printStackTrace() 被认为是不好的实践?_java_酷徒编程知识库...