龙空技术网

重学前端基础:样式操作的方式,包括内部样式,行内样式

代码开发 188

前言:

眼前各位老铁们对“js样式操作”大致比较注重,咱们都需要剖析一些“js样式操作”的相关资讯。那么小编同时在网摘上汇集了一些有关“js样式操作””的相关知识,希望小伙伴们能喜欢,咱们一起来了解一下吧!

样式操作

通过 JavaScript 动态修改页面样式。

CSS 对应 DOM 对象

<link rel="stylesheet" type="text/css" href="sample.css">// var element = document.querySelector('link');// 对应于 element.sheet<style type="text/css" media="screen"> body { margin: 30px }</style>// var element = document.querySelector('style');// 对应于 element.sheet// 整个页面的全部样式(不包括行内样式)document.styleSheets<p style="color:red">Text Color</p>// var element = document.querySelector('p');// 对应于 element.style

内部样式表

<style> body{margin:30;} p{color: #aaa; line-height:20px}</style>// 1.对应所有样式的列表// body{margin:30;}// p{color: #aaa; line-height:20px}element.sheet.cssRules;// 2.对应相应的 CSS 选择器// pelement.sheet.cssRules[1].selectorText;// 3.对应一个样式// p{color: #aaa; line-height:20px}element.sheet.cssRules[1]// 4.对应所有样式的键值对// color: #aaa; line-height:20pxelement.sheet.cssRules[1].style;// 5.对应的属性值// #aaaelement.sheet.cssRules[1].stlye.color;element.sheet.cssRules[1].lineHeight;

行内样式

其对应于 CSSStyleDeclaration 的对象。

element.style.color;// 获取行内样式的键值对

更新样式

element.style

element.style.color = 'red';element.style.background = 'black';

增加样式后得到的结果

<div style="color: red; background: black;"></div>

缺点

每个属性的更新都需要一个命令命名异常(以驼峰命名法命名属性)

element.style.cssText

一次同时设置多个行内样式,其结果同 element.style 单独设置相同。

element.style.cssText = 'color: red; background: black';

增加样式后得到的结果

<div style="color: red; background: black;"></div>

以上两种方式均将样式混合在逻辑当中。

更新 class

首先需要创建对应样式的 CSS 样式。

.angry { color: red; background: black;}

然后再在 JavaScript 中,在对应的事件中给元素添加需要的类即可。

element.className += ' angry';

增加样式后得到的结果

<div class="angry"></div>

统一更新多个元素样式

以上方法均不适合同时更新多个样式,通过更换样式表的方式则可同时更改多个页面中的样式。将需要的大量样式也在一个皮肤样式表中,通过 JavaScript 来直接更换样式表来进行样式改变。(此方法也可用于批量删除样式)

<link rel="stylesheet" type="text/css" href="base.css"><link rel="stylesheet" type="text/css" href="style1.css">element.setAttribute('href', 'style2.css');

获取样式

element.style

其对应的为元素的行内样式表而不是实际样式表。

<input type="checkbox" name="" value="">element.style.color; // ""

line-height: 200px

window.getComputedStyle()

将需要取出样式的目标元素传入 window.getComputedStyle() 函数中,即可得到对应元素的实际样式。注意的是这里获取到的样式值为只读属性不可修改!获取的实际为 CSSStyleDeclaration 的实例对象。

此方法不支持 IE9 以下版本,IE9 中需使用 element.currentStyle 来做兼容。

var style = window.getComputedStyle(element[, pseudoEle]);<input type="checkbox" name="" value="">window.getComputedStyle(element).color; // 'rgb(0,0,0)'

标签: #js样式操作 #行内样式使用什么属性来定义