美文网首页
JS之元素中的样式

JS之元素中的样式

作者: 赎_a | 来源:发表于2019-08-09 19:10 被阅读0次

一、访问元素中行内样式

style对象是CSSStyleDeclaration的实例,包含着通过HTML的style特性指定的所有样式信息
但不包含与外部样式,或嵌入式样式层叠而来的样式
短划线的css属性必须转换成驼峰大小写形式 (float是关键字,所以规定为cssFloat)

// HTML
<div style="color: blue; background-color: yellow !important;">字体</div>

// 外链样式
    div {
    width: 100px;
    height: 100px;
    background-color: red;
    border: 6px solid #ccc; 
}

// JS
var divEle = document.querySelector('div');

1.获取行内样式信息

var divStyle = divEle.style;

1.1应用给元素的css属性的数量
console.log(divStyle.length); // 2

1.2返回给定位置的 CSS 属性的名称 与length配套使用
console.log(divStyle.item(0)); // color

1.3cssText
通过它能够访问到 style 特性中的 CSS 代码
在读取模式下, cssText 返回浏览器对 style特性中 CSS 代码的内部表示
在写入模式下,赋给 cssText 的值会重写整个 style 特性的值
设置 cssText 是为元素应用多项变化最快捷的方式,因为可以一次性地应用所有变化
console.log(divStyle.cssText); // color: blue; background-color: yellow;

1.4获取指定属性的值
console.log(divStyle.getPropertyValue('color')); // blue

1.5如果给定的属性使用了 !important 设置,则返回 "important" ;否则,返回空字符串
console.log(divStyle.getPropertyPriority('background-color')); // important

2.设置样式

2.1
divStyle.color = '#FFF'; divStyle.backgroundColor = '#000';

2.2 setProperty(属性, 属性值, 权重)第三个参数(可选): 优先权重 "important" 或者一个空字符串
divStyle.setProperty('color', 'green');

3.删除属性

removeProperty(propertyName) :从样式中删除给定属性
意味着将会为该属性应用默认的样式(从其他样式表经层叠而来)
console.log(divStyle.removeProperty('color')); // 返回给定属性的值 green

二、计算属性

  1. 虽然 style 对象能够提供支持 style 特性的任何元素的样式信息,但它不包含那些从其他样式表层叠而来并影响到当前元素的样式信息
  1. “DOM2 级样式”增强了 document.defaultView ,提供了getComputedStyle() 方法, 返回CSSStyleDeclaration 对象(与 style 属性的类型相同),并且是计算过后的样式(行内,内嵌(内部), 外链)

4.第一个参数: 取得计算样式的元素; 第二个参数: 伪元素字符串(':after') 在旧版本之前,第二个参数“伪类”是必需的,现代浏览器已经不是必需参数了

5.两种写法: window.getComputedStyle() || document.defaultView.getComputedStyle()

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

function getStyle(ele) {
return window.getComputedStyle ? window.getComputedStyle(ele) : ele.currentStyle;
        }

console.log(getStyle(divEle)); // 返回CSSStyleDeclaration

三、 视口位置

  1. var rect = element.getBoundingClientRect(无)用于获取某个元素相对于视口的位置集合。
  1. 集合中有top, right, bottom, left等属性。
    rect.top: 元素上边到视口顶部的距离;
    rect.right: 元素右边到视口左边的距离;
    rect.bottom: 元素下边到视口顶部的距离;
    rect.left: 元素左边到视口左边的距离
    var rect = divEle.getBoundingClientRect();
        // 获取元素的宽高(包括边框)
        var rectWidth = rect.right - rect.left;
        var rectHeight = rect.bottom - rect.top;

        console.log(rectWidth, rectHeight); // 112 212

相关文章

  • JS之元素中的样式

    一、访问元素中行内样式 style对象是CSSStyleDeclaration的实例,包含着通过HTML的styl...

  • 动态修改before/after的content值

    样式中设置content为元素的data-值 然后js修改

  • js设置html元素的样式

    设置某个元素的样式 去除使用js设置的样式

  • dom操作css

    解决浏览器兼容,获取div样式 页面样式: 通过js修改元素样式: 读取样式: 读取正在显示样式: 语法:元素.c...

  • 如何用js改变伪元素样式

    通常设置伪元素的样式直接用CSS很方便 可是有时候想用js动态的去改变伪元素的样式,但是js获取不到伪元素,这就很...

  • vue.js学习笔记四

    Vue.js 样式绑定Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素...

  • web自动化_dom

    js不能直接操作html元素,比如要修改元素的样式,需要通过dom对象操作html元素js ->dom对象->调用...

  • 设置元素的样式值setCss

    在JS中给元素设置样式属性值,只能通过curEle.style.[attr]=value;这种方式给当前元素设置行...

  • 获取元素大小和位置的五种方式

    一、直接获取元素样式属性值 运用之前在JS如何获取元素样式?这篇文章中提到的三种获取元素样式方法便可获取元素大小和...

  • bootstrap的dropdown消失效果实现

    html css部分dropdown样式用了bootstrap的 js部分点击body中除了buttom元素之外的...

网友评论

      本文标题:JS之元素中的样式

      本文链接:https://www.haomeiwen.com/subject/zmohjctx.html