cssText基本使用及注意事项
一、cssText之起步
那些年,我们是这样设置样式的:
xxx.style.width = "233px";
xxx.style.position = "fixed";
xxx.style.left = "233px";
现如今,我们可以这样搞:
xxx.style.cssText = "width:233px; height:233px; position:fixed";
W3C是这样描述cssText:
cssText,DOMString类型
cssText特性必须返回序列化的CSS规则。
当设置cssText特性时运行这些步骤:
1. 解析其值。
2. 如果解析失败则终止运行。
3. 如果新对象的type并不匹配当前对象的type则抛出"InvalidModificationError"异常。
4. 替换当前对象为新对象。
请注意第四条:也就是说会覆盖到目标元素之前本身所具有的全部样式(继承的不算)。
举个栗子:
这里有一个<div>,长下面这个模样:
.xxx {height:233px;width:233px;background:#F60;}
然后我要改变它的高度,我可以这么写:
xxx.style.height= "466px";
但是不可以这么写:
xxx.style.cssText="height:466px;";
二、cssText之提速
基于上面的原因,我们在使用cssText修改某个元素样式的时候,需要首先得到它当前的样式:
var xxx = document.getElementById("warp");
var xxx_style = xxx.style.cssText;
然后在加上现在的样式:
xxx_style += "position:fixed;"
xxx.style.cssText = xxx_style;
但是,如果需要IE6/7/8完美支持,那就需要注意了
当我们使用 var xxx_style = xxx.style.cssText;得到样式的时候,最后是没有分号的。
也就是说,如果某个元素的样式是:
height: 100px; width: 100px;overflow: hidden;
在IE6/7/8下我们会得到:
HEIGHT: 100PX; WIDTH: 100PX; OVERFLOW: HIDDEN
最后的分号被丢掉了。
结果就是当我们再使用
xxx_style += "background:#F60;"
xxx.style.cssText = xxx_style;
来处理样式时,会出现:
height: 100px; width: 100px; overflow: hiddenbackground:#F60;
当然你可以选择使用:xxx_style = "background:#F60;" + xxx_style的方式,最后没有分号也不会影响,但是世事难料,安全起见,还是额外判断一下,补上这个分号比较可靠。
除此以外,IE6/7/8下返回的属性和值全是大写,为了避免日后出现意外,还是.toLowerCase( )比较好。
文章转自:https://segmentfault.com/a/1190000000703778
cssText基本使用及注意事项的更多相关文章
- js改变css样式
CreateTime--2017年10月31日15:14:12 Author:Marydon js改变css样式 1.js改变单个css样式 HTML部分 <div id="tes ...
- JS学习之路,菜鸟总结的注意事项及错误更正
JavaScript 是一种面向对象的动态语言,它的语法来源于 Java 和 C,所以这两种语言的许多语法特性同样适 用于 JavaScript.需要注意的一个主要区别是 JavaScript 不支持 ...
- jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- TODO:Golang指针使用注意事项
TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变:例子2是使用指针传递,会改变地址,从而改变地址. ...
- app开发外包注意事项,2017最新资讯
我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许 ...
- favicon.ioc使用以及注意事项
1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没 ...
- ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 【原】Masonry+UIScrollView的使用注意事项
[原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...
随机推荐
- halcon安装提示could not write updated path to HKLM
halcon安装提示could not write updated path to HKLM 我们在安装Halcon软件时,会弹出如上图错误信息,这个错误信息提示软件无法写入本地注册表,造成这个原因有 ...
- 使用树莓派实现(山寨)高清视频叠加(HDMI OSD)
项目需要在HDMI上叠加一些字符包括汉字和数值,要求不能使用台式机,本身也没有HDMI采集卡驱动开发能力,所以通过海思的HDMI编码器将HDMI编码为h.264网络视频流,然后通过树莓派解码显示,做字 ...
- 软工Hello World!团队第二周博客汇总
2017.10.20-2017.10.26 Scrum会议: 第一天:http://www.cnblogs.com/liusx0303/p/7704482.html 第二天:http://www.cn ...
- Java学习个人备忘录之数组工具类
下面主要讲解一个针对数组操作的工具类. a.java -- 工具类文件 //按理来说要先编译本文件, 然后再编译主函数 class ArrayTool { /* 获取整型数组的最大值 */ publi ...
- Python实用技巧
1.改变工作目录 import os os.chdir('C:/Users/Mr.Zhao') 2.搜索制定目录下的文件 1 import glob 2 glob.glob('C:/User/Mr.Z ...
- eg_4
4. 编写一个程序,要求以树状结构展现特定的文件夹及其子文件(夹) import java.io.*; public class Test { public static void main(Stri ...
- ACM 第八天
数据结构和算法目录表 数据结构和算法目录表 C C++ Java 线性结构 1. 数组.单链表和双链表 2. Linux内核中双向链表的经典实现 数组.单链表和双链表 数组.单链表和双链表 ...
- iOS开发GCD的简单使用
- (void)viewDidLoad { [super viewDidLoad]; // gcd 可以充分调用设备的 cpu 发挥最大性能,在 C 语言基础之上封装的 // dispatch_que ...
- Swift-函数的理解
/* 函数(Function) 函数是为执行特定功能的自包含的代码块.函数需要给定一个特定标识符(名字),然后当需要的时候, 就调用此函数来执行功能. */ // 函数的定义与调用 // 定义函数时, ...
- Linux下安装MySQL管理工具MySQL Administrator和MySQL Query Browser(转载)
文章来源:http://blog.csdn.net/sunrier/article/details/7572299 Linux下MySQL Administrator和MySQL Query Brow ...