样式
DOM 样式属性和方法
取得 CSS 属性名和值
1 2 3 4 5 6
| var prop, value, i, len; for (i=0, len=myDiv.style.length; i < len; i++) { prop = myDiv.style[i]; //或者 myDiv.style.item(i) value = myDiv.style.getPropertyValue(prop); alert(prop + ":" + value); }
|
操作样式表
跨浏览器取得样式表对象
1 2 3 4 5 6 7
| function getStyleSheet(element) { return element.sheet || element.styleSheet; } //取得第一个<link/>元素引入的样式表 var link = document.getElementsByTagName("link")[0]; var sheet = getStyleSheet(link);
|
CSS 规则
跨浏览器向样式表中添加规则
1 2 3 4 5 6 7 8 9
| function insertRule(sheet, selectorText, cssText, position) { if (sheet.insertRule) { sheet.insertRule(selectorText + "{" + cssText + "}", position); } else if (sheet.addRule) { //兼容 IE sheet.addRule(selectorText, cssText, position); } } insertRule(document.styleSheets[0], "body", "background-color:silver", 0);
|
删除规则
跨浏览器删除规则
1 2 3 4 5 6 7 8 9
| function deleteRule(sheet, index) { if (sheet.deleteRule) { sheet.deleteRule(index); } else if (sheet.removeRule) { sheet.removeRule(index); //兼容 IE } } deleteRule(document.styleSheet[0], 0);
|
与添加规则相似,删除规则也不是实际 Web 开发中常见的做法。 考虑到删除规则可能会影响 CSS 层叠的效果,因此要慎重使用
元素大小
客户区大小
确定浏览器视口大小
1 2 3 4 5 6 7 8 9 10 11 12 13
| function getViewport() { if (document.compatMode == "BackCompat") { return { width: document.body.clientWidth, // IE height: document.body.clientHeight }; } else { return { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight }; } }
|