css原生样式支持,原生JS读写CSS样式的方法

通过Element对象的getAttribute()、setAttribute()、removeAttribute()直接读写style属性

如:elm.setAttribute('style','color:red;line-height:30px');

利用document.styleSheets属性,返回当前页面的所有StyleSheet对象(即所有样式表),它是一个只读的类数组对象,它的元素是CSSStyleSheet对象(继承自StyleSheet对象),该对象的属性方法如下:

属性:

1.cssRules类数组对象,元素是样式表中CSS规则CSSStyleRule对象;IE9以下为rules;

2.disabled属性用于打开或关闭一张样式表,值为true或disabled;

3.ownerNode属性返回StyleSheet对象所在的DOM节点,通常是或

4.因为CSS的@import命令允许在样式表中加载其他样式表,就有了parentStyleSheet属性,它返回包括了当前样式表的那张样式表。如果当前样式表是顶层样式表,则该属性返回null;

5.type属性返回StyleSheet对象的type值,通常是text/css;

6.title属性返回StyleSheet对象的title值;

7.href属性是只读属性,返回StyleSheet对象连接的样式表地址。对于内嵌的style节点,该属性等于null;

8.media属性表示这个样式表是用于屏幕(screen),还是用于打印(print),或两者都适用(all),该属性只读,默认值是screen;

方法:deleteRule()从样式表中删除一条规则,insertRule()向样式表中插入一条新规则,IE9以下为addRule()、removeRule();

如: document.styleSheets[0].insertRule('#test:hover{color: white;}',0);

document.styleSheets[0].deleteRule(0); //删除样式表中的第一条规则

document.styleSheets[0].cssRules[1].selectorText; //返回选择器字符串

document.styleSheets[0].cssRules[1].cssText; //返回规则字符串,含选择器

document.styleSheets[0].cssRules[1].style.border;

document.styleSheets[0].cssRules[1].style.cssText; //返回当前规则的所有样式声明字符串

可以通过DOM节点对象的style对象(即CSSStyleDeclaration对象)来读写文档元素的CSS样式

如:var elm = document.getElementById('test');elm.style.color = 'black';

直接添加样式表

1.创建标签

var style1 = document.createElement('style');

style1.innerHTML = 'body{color:red}#top:hover{background-color: red;color: white;}';

document.head.appendChild(style1);

2.另一种是添加外部样式表,即在文档中添加一个link节点,然后将href属性指向外部样式表的URL

var link1 = document.createElement('link');

link1.setAttribute('rel', 'stylesheet');

link1.setAttribute('type', 'text/css');

link1.setAttribute('href', 'reset-min.css');

document.head.appendChild(link1);

用window对象的getComputedStyle方法,第一个参数是Element对象,第二个参数可以是null、空字符串、伪元素字符串,该方法返回一个只读的表示计算样式的CSSStyleDeclaration对象,它代表了实际应用在指定元素上的最终样式信息,即各种CSS规则叠加后的结果;

如:var color = window.getComputedStyle(elm, ':before').color;

var color = window.getComputedStyle(elm, ':before').getPropertyValue('color');

或:var color = window.getComputedStyle(elm, null).color;

表示计算样式的CSSStyleDeclaration对象与表示内联样式的CSSStyleDeclaration对象的区别:

1.计算样式的属性是只读的;

2.计算样式的值是绝对值,类似百分比和点之类相对的单位将全部转换为以'px'为后缀的字符串绝对值,其值是颜色的属性将以“rgb(#,#,#)”或“rgba(#,#,#,#)”的格式返回;

3.不计算复合属性,只基于最基础的属性,如不要查询margin,而单独查询marginTop等;

4.计算样式对象未定义cssText属性;

5.计算样式同时具有欺骗性,使用时需注意,在查询某些属性时的返回值不一定精准,如查询font-family;

6.IE9以下不支持getComputedStyle方法,IE的Element对象有currentStyle属性;

通过CSSStyleDeclaration对象的cssText属性和setProperty()、removeProperty等方法

如:elm.style.cssText ='color:red;line-height:30px';

elm.style.removeProperty('color');

elm.style.setProperty('color', 'green', 'important');

elm.style.cssText = ''; //快速清空该规则的所有声明

每一条CSS规则的样式声明部分(大括号内部的部分),都是一个CSSStyleDeclaration对象,它的属性和方法:

属性:

1.cssText:当前规则的所有样式声明文本。该属性可读写,即可用来设置当前规则。

2.length:当前规则包含多少条声明。

3.parentRule:包含当前规则的那条规则,同CSSRule接口的parentRule属性。

方法:

1.getPropertyPriority()方法返回指定声明的优先级,如果有的话,就是“important”,否则就是空字符串;

2.getPropertyValue方法返回指定声明的值;

3.item(index)方法返回指定位置的属性名,一般用[index]语法更直接;

4.removeProperty方法用于删除一条CSS属性,返回被删除的值;

5.setProperty方法用于设置指定的CSS属性,没有返回值;

window.matchMedia方法用来检查CSS的mediaQuery语句。各种浏览器的最新版本(包括IE 10+)都支持该方法,对于不支持该方法的老式浏览器,可以使用第三方函数库matchMedia.js;

下面是mediaQuery语句的一个例子:

@media all and (max-device-width: 700px) {

body {background: #FF0;}

}

window.matchMedia方法接受一个mediaQuery语句的字符串作为参数,返回一个MediaQueryList对象。该对象有以下两个属性:

media:返回所查询的mediaQuery语句字符串。

matches:返回一个布尔值,表示当前环境是否匹配查询语句。

var result = window.matchMedia('(max-width: 700px)');

if (result.matches) {

console.log('页面宽度小于等于700px');

} else {

console.log('页面宽度大于700px');

}

window.matchMedia方法返回的MediaQueryList对象有两个方法,用来监听事件:addListener方法和removeListener方法。如果mediaQuery查询结果发生变化,就调用指定的回调函数;

var mql =  window.matchMedia("(max-width: 700px)");

mql.addListener(mqCallback);// 指定回调函数

mql.removeListener(mqCallback);// 撤销回调函数

function mqCallback(mql) {

if (mql.matches) {// 宽度小于等于700像素}

else { // 宽度大于700像素}

}

本文参考:

MDN: https://developer.mozilla.org/zh-CN/docs/Web/API

https://www.cnblogs.com/susufufu/p/5749922.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提升代码可读性的 10 个技巧

具有较强可读性的代码,能帮助你调试程序,不让自己活得太累。 代码可读性是计算机编程领域中普遍存在的问题。这也是我们成为开发者首先要学习的事情之一。本文会详细介绍在编写强可读性代码时最佳实践中最重要的一部分内容。 1 - 注释和文档 IDE&#xf…

phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它

来源:太平洋电脑网我们知道微软在Windows 10中,特别加强了系统的搜索功能,但Windows 10的搜索的确很难称得上好用。抛开效率低下、呈现结果少、造成系统卡顿等老生常谈的问题不论,在功能设计方面,Windows 10搜索也有硬…

支撑性服务 自动化能力

连载传送门:什么是云原生?云原生设计理念.NET 微服务谈到云原生,绕不开“容器化”Backing services云原生系统依赖于许多不同的辅助资源,例如数据存储、消息队列、监视和身份服务,这些服务统称为支撑性服务。下图显示了…

网站logo放在服务器,自己建网站如何设计网站LOGO

LOGO是一个网站的形象代表或者说是品牌的象征,用户记住了网站LOGO,就相当于记住了网站,因此,自己建网站时要融入网站LOGO的设计,潜移默化地把LOGO形象植入用户脑海中,把网站与LOGO紧密连接在一起&#xff0…

python http协议获取对方的ip地址_http协议(一)基础知识

参考:老张http://link.zhihu.com/?targethttps%3A//www.cnblogs.com/imyalost/p/5627816.html参考书籍——《图解http》当我们在浏览器的地址栏中输入网址,然后点击回车,接着,浏览器就会呈现出我们需要的web界面,那么…

好久没到这个地方来.

懒了,好久没写随笔了,学的东西不少,学过就忘记.没有整理,不成系统.最近也没什么好说的,瞎掰一通吧.--有时候觉得,我就是个愤青. 总感觉自己的思维很混乱,很没有头绪,东边拉袋水泥,西边拼块砖头的,没有结构,也不成体系,就是很多很原始的东西的简单堆积.得改...... 发现博客园是最…

TIOBE编程语言排行榜,Python遥遥领先

在这个快节奏的时代,要想走在潮流前端,你需要用最有效的方式,最有效率的工具,学习最有用的知识。而如今人工智能和数据分析爆发,python就是一颗冉冉升起的新星,因为简单易用和广阔的可能性,不仅…

mongodb默认的用户名密码_设置mongodb的用户名密码 | Think in Drupal

作者:亚艾元技术部我们在一个Nodejs项目中,使用了mongodb数据库,使用习惯和mysql很不一样,在摸索中前进,其中一个问题,mongodb安装完了以后,不用设置用户名密码,就可以登录使用。开始的时候&…

Dapr是如何简化微服务的开发和部署

基于微服务设计模式的现代应用程序面临着一系列挑战。微服务需要有一个强大的服务发现机制来实现动态连接。它们需要松散耦合,实现自主性和独立缩放。微服务需要支持多种语言,其中每个服务都是以最合适的语言、框架和运行时实现的。尽管采用容器和编排引…

table 内 下拉列表 被遮挡_一个简洁、有趣的无限下拉方案

本文主旨长列表渲染、无限下拉也算是前端开发老生常谈的问题之一了,本文将介绍一种简洁、巧妙、高效的方式来实现。话不多说,看下图,也许你可以发现什么?无限下拉示意图不知你是否从上面这张图中注意到了什么,比如只是…

天龙八部服务器维护后提BB,天龙八部:宠物比号值钱?玩家哭诉附体BB半年也卖不出去...

说到天龙八部的附体宝宝,相信许多爱美的玩家基本上都人手一只。附体后的增益多不多无所谓,首先附体后身上有龙、凤凰、蝴蝶等之类的特效,让许多玩家觉得游戏中角色颜值增添不少,当然一只属性不错的附体珍兽,也能够给游…

asp.net 动态添加JavaScript方法

//在页面顶部添加脚本 if (!Page.ClientScript.IsClientScriptBlockRegistered("myscriptKey"))//判断是否已经存在相同//键值的ScriptBlock { string myScript "function AlertHello(){alert(hello xuanhun!!);}";//脚本内容 …

写了 15 年代码,总结出提升 10 倍效率的三件事

译者:roy 【译者注】本文作者 Matt Watson 已经写了超过 15 年的代码,也由此总结出了提升 10 倍效率的三件事。Matt 表示,一个 10 倍效率的开发人员很快就知道了他们需要做什么,要问什么问题,什么时候不问问题&#xf…

python怎么样另存为_python要怎么保存python生成式

本篇将介绍Python的列表生成式,更多内容请参考:Python列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。举个例子,要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))>>>…

反锐化掩膜_光电图像处理 | 空域锐化滤波

锐化滤波Sharpen filterclc;close all;I imread(图片11.jpg);set(figure(1), name,不同梯度合成效果, numbertitle, off);subplot(221),imshow(I);title(原图);I rgb2gray(I);%% Roberts operatorH1x [0 0 0;0 -1 0;0 0 1]; H1y [0 0 0;0 0 -1;0 1 0];J1x imfilter(I,H1x)…

服务器不知道怎么回事安卓系统很卡,为什么安卓系统很容易变卡?该怎么解决?看完长知识了...

手机是我们现代生活的必备之物,什么都可以没有到就是不能没有手机,如今市面上的手机的手机不是安卓系统就是ios系统,安卓系统的手机虽然便宜但是有一个诟病,那就是安卓的手机会越用越卡,不管你手机配置是多么的高&…

EntityFramework Core自动返回SQL语句

【导读】给各位拜年了,开年第一篇,后续我们介绍EF Core 5.0相关新特性自动返回SQL语句当执行LINQ查询时,EF Core 5.0提供了ToQueryString扩展方法返回生成的SQL语句比如,执行如下LINQ查询var name "jeffcky"; var user…

生成jar文件的方法

生成jar文件的方法。菜单:Wizards--Archive builder如果需要重新生成jar文件,则需要在菜单中选择 project--rebuilder在jbuilder中加入其它jar包的方法。1>菜单:tools--Enterprise Setup--Datebase Driver--Add--new--选择jar所在的路径--…

怎么用ai做出适量插画_怎么用最简单的方法,做出最炫酷的数据可视化图表?...

如果要问数据怎样做才能显得最装逼,那么答案一定只有一个:“数据可视化”!看上去也很炫酷对不对,其实上面的可视化图表其实并不复杂,很多人推荐的Python、R语言、Tableau等专业数据分析工具几乎都能很轻松的实现。但是…

stm32烧不进去程序_STM32的FLASH和SRAM的使用情况分析

点击上方蓝字关注我哦~01前言STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。本文详细分析下如何查看程序中FLASH和SRAM的使用情况。本文开发工具: keil5芯片: STM32F105VCT602FLASH和SRAM介绍FLA…