利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作
HTML中引入CSS样式的方式有三种:
1.最常用的,引入样式表,在样式表中编写样式,引入方式如下:
<link href="css/style.css" rel="stylesheet" type="text/css">
2.在Html头部用<style></style>包起来,在这里面编写样式:
<style type="text/css">
*{
padding: 0;margin: 0
}
</style>
3.在标签里面直接编写行内样式。
<div style="color: #333"><div>
下面就简单的介绍下利用JS对内联样式进行操作:
脚本化CSS最直接的方法就是更改单独的文档元素的style的属性值,类似大多数的HTML的属性,style也是元素对象的属性,其可以在JS中对其进行操作。由于style具有特殊性,通常style中的属性不只有一个,因而style的值不单单只是一个字符串,而是一个CSSStyleDeclaration对象。通过对该对象的操作可以利用JS更改元素的样式。利用JS操作CSS样式需要注意以下几点:
(1)通常通过HTML的属性和利用<style>标签定义的样式属性的面子中会包含有一个或者多个连字符如:background-color,但是在JS中两字符是减号,像前面那样书写会报错的。因而在利用JS对属性进行操作时首先将连字符去掉,同时需要将原来紧连着连字符的后的字符转换为大写。这样CSS属性border-width就转换为了:borderWidth。JS中通过如下的方法对CSS样式属性进行访问:e.style.borderWidth="2px"。另外CSS属性中如果使用了JS中的保留字,则需要在上述的基础上加上CSS,如CSS中的float属性,利用CSSStyleDeclaration对象的cssFloat属性来进行设置。
(2)CSS样式属性值在CSSStyleDeclaration对象中使用时需要利用字符串形式。同时所有的定位属性(如:width,height,top,left等)都需要加上单位px。这样再利用JS 对其进行运算时需先对字符串进行处理(可以利用字符串对象的方法split)。
(3)JS中获取属性值和给属性赋值的几种方式:
a、直接利用CSSStyleDeclaration对象进行操作
b、getAttribute()和setAttribute()分别对获取属性值和给某属性赋值。
但是通过以上两种方式对CS样式的属性进行操作时,只能获取已经通过JS代码进行设置过的值或者通过HTML元素显示设置了想要的内联样式的值(即在HTML标签中通过属性style进行设置了的属性值)。也就是说文档可能包含一个样式表以设置div的宽度均为300px,但是通过JS读取该属性时将会得到一个空的字符串,除非在JS中已经有一个style属性覆盖了样式列表中的设置。
c、利用window对象的方法getComputedStyle()获取计算后的样式,该方法是可以获取上面不能获得到的属性值得,但是通过该方法获取到的属性是只读的,同时都是绝对值(如width用百分比表示的会计算转换为具体的数值,颜色会转换成rgba),而且该方法不计算复合属性,不能获取符合属性的值。
d、通过获取元素对象后利用element.css({width:50px; height:50px;})的方式也可以为元素对像添加样式。
利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作的更多相关文章
- 利用 JS 脚本实现网页全自动秒杀抢购
利用 JS 脚本实现网页全自动秒杀抢购 倒计时页面: 倒计时未结束时,购买按钮还不能点击. 结束时,可以点击购买,点击后出现提示"付款成功" 展示效果 1.制作测试网页 首先我们来 ...
- js控制不同的时间段显示不同的css样式
js控制不同的时间段显示不同的css样式 js函数,可以放到单独的js文件中也可以放到当前页的<head>标记之内 function getCSS(){ datetoday ...
- 第九章 利用DOM脚本检索,替换,设置,追加样式信息
我们浏览器里看到的网页是由以下三层信息构成的一个共同体: -结构层,由HTML或XHTML之类的标记语言负责去搭建文档的结构. -表示层,由CSS负责设置文档的呈现效果. -行为层,由JavaScri ...
- 投票系统 & js脚本简单刷票
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【转】第5篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+委托回调方法分析
作者: 牛A与牛C之间 时间: 2013-11-19 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第5篇:Xilium CefGlue 关于 CLR Object 与 JS ...
- 关于写作那些事之利用 js 统计各大博客阅读量
在日常文章数据统计的过程中,纯手动方式已经难以应付,于是乎,逐步开始了程序介入方式进行统计. 在上一节中,探索利用 csv 文件格式进行文章数据统计,本来以为能够应付一阵子,没想到仅仅一天我就放弃了. ...
- jacascript CSS样式的脚本化(js)操作
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 引入CSS有3种方式:行间样式,内联样式和外部链接样式. 在实际工作中,我们使用 javascript 操 ...
- Vue设置全局js/css样式
''' 配置全局js mian.js: import settings from '@/assets/js/settings' Vue.prototype.$settings = settings; ...
- C#中在AxWebBrowser控件注入JS脚本的方法
/// <summary> /// 窗体加载 /// </summary> private void JS_Load(object sender, EventArgs e) { ...
随机推荐
- transient的理解
用法解释 1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问. 2)transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被 ...
- HealthKit开发快速入门教程之HealthKit数据的操作
HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...
- Equipment Box[HDU1110]
Equipment Box Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- BZOJ2837 : 小强的形状
离散化后通过树状数组求出: b[i]为i之前比它小的. c[i]为i之前比它大的=i-1-i之前小于等于它的. d[i]为i之后比它小的. e[i]为i之后比它大的=n-i-f[i]. f[i]为i之 ...
- Java虚拟机工作原理详解
原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了 ...
- TYVJ P1078 删数 Label:区间dp
描述 有N个不同的正整数数x1, x2, ... xN 排成一排,我们可以从左边或右边去掉连续的i个数(只能从两边删除数),1<=i<=n,剩下N-i个数,再把剩下的数按以上操作处理,直到 ...
- 原来还有这样的记词方法_Java版记不规则动词_博主推荐
昨天在看一本英语书的不规则动词的时候,突然产生的灵感:就是想把这样记单词简单方式,用程序代码实现,然后,使用户可以与之进行交互 这样,在用户背不规则动词的时候就会轻松把它给记住.基于这一点,于是我就思 ...
- Hibernate批处理操作优化 (批量插入、更新与删除)
问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低. 工 ...
- Centos python 2.6 升级到2.7.3
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 sudo make all sudo mak install sudo mak ...
- 【液晶模块系列基础视频】1.3.iM_TFT30模块简介
[液晶模块系列基础视频]1.3.iM_TFT30模块介绍 ============================== 技术论坛:http://www.eeschool.org 博客地址:http:/ ...