JavaScript CSS-DOM

JavaScript CSS-DOM

一:简介

JavaScriptCSS-DOM是通过JavaScript去改变HTML-DOM的显示形式、即样式。如element.style.fontSize = 15em;此种形式。与CSS相比、CSS-DOM可以定时重复的执行一些样式渲染或者改变、这是CSS所不能实现的。

二:DOM Core HTML-DOM CSS-DOM关系

DOMCore是DOM API提供的用于操作页面元素的基础方法、比如根据id、标签名获取元素标签等

HTML-DOM同样是JavaScript用于操作HTML元素的方法、只是方式有所不同、如document.body;element.href = value;等。

CSS-DOM是JavaScript操作页面显示样式的方式、如document.style.fontSize= 11px等。

从上面看JavaScript似乎能胜任一个网页从构造到显示、以及动态改变网页结构样式的功能。是能胜任、但是并不意味着所有的事情交由JavaScript完成是一个好的选择。

三:网页的三层架构

结构层(structure layer):由HTML或XHTML之类的标记语言负责创建。

表示层(presentation layer):由CSS负责完成、其描述网页如何显示。

行为层(behavior layer):负责内容应该如何相应事件、由JavaScript语言和DOM完成。

分层的思想使得分工更加明确、调理更加清晰。所以、在产品设计中、选择最合适的工具去解决问题是最基本的原则。尽管上面提到的三层架构之间都有所渗透、如JavaScript可以操作三层任何一层、CSS的a:hover可以完成JavaScript类似功能等、在设计中还是应遵循选择最适合的工具去解决问题原则。

四:实例

展现一个表格、奇偶行背景颜色不同、当鼠标移到上面时字体变粗。

效果:

关键点:

为元素添加样式:element.style.xxx = value;

为元素绑定事件:element.onmouseover = function(){};

触发事件时改变指定元素样式。

使用了前文中的displayAbbreviations函数。

addLoadEvent.js、displayAbbreviations.js前文中有。

itinerary.html:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Itinerary</title>
	<link rel="stylesheet" href="../css/itinerary.css">
	<script src="../js/example.js"></script>
	<script src="../js/displayAbbreviations.js"></script>
	<script src="../js/heightLightRow.js"></script>
	<script src="../js/addLoadEvent.js"></script>
</head>
<body>
	<table>
		<caption>Itinerary</caption>
		<thead>
				<tr>
					<th>When</th>
					<th>Where</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td>June 9th</td>
					<td>Portland, <abbr title="Oregon">OR</abbr></td>
				</tr>
				<tr>
					<td>June 10th</td>
					<td>Seattle, <abbr title="Washington">WA</abbr></td>
				</tr>
				<tr>
					<td>June 12th</td>
					<td>Sacramento, <abbr title="California">CA</abbr></td>
				</tr>
			</tbody>
	</table>
</body>
</html>

itinerary.css:

body {
    font-family: Helvetica, Arial, sans-serif;
    background-color: #fff;
    color: #000;
}

table {
    margin: auto;
    border: 1px solid #699;
}

caption {
    margin: auto;
    padding: .2em;
    font-size: 1.2em;
    font-weight: bold;
}

th {
    font-weight: normal;
    font-style: italic;
    text-align: left;
    border: 1px dotted #699;
    background-color: #9cc;
    color: #000;
}

th, td {
    width: 10em;
    padding: .5em;
}

/*
tr:nth-child(odd) {
    background-color: #ffc;
}

tr:nth-child(even) {
    background-color: #fff;
}*/

.odd {
    background-color: #ffc;
}

example.js:

function addClass(elems, newClassName) {
    if (!elems.className) {
        elems.className = newClassName;
    } else {
        var currentClassName = elems.className;
        var space = " ";
        elems.className = currentClassName + space + newClassName;
    }
}

/**
 * Enhancing stripe table function.
 */
function useClassStripeTable() {
    var tableElements = document.getElementsByTagName("table");
    var odd = true;
    for (var i = 0; i < tableElements.length; i++) {
        var trElements = tableElements[i].getElementsByTagName("tr");
        for (var j = 0; j < trElements.length; j++ ) {
            if (odd) {
                addClass(trElements[j], "odd");
                odd = false;
            } else {
                odd = true;
            }
        }
    }
}
时间: 2024-08-29 07:03:35

JavaScript CSS-DOM的相关文章

JavaScript获取DOM节点HTML元素CSS样式

JavaScript获取DOM节点HTML元素CSS样式技术 maybe yes 发表于2015-01-10 18:07 原文链接 : http://blog.lmlphp.com/archives/59  来自 : LMLPHP后院 如何使用 JavaScript 获取某个 DOM 节点下 HTML 元素的 CSS 样式值?使用过 JQuery 的童鞋一定都非常的熟悉,Jquery 提供了非常强大的 CSS 方法,可以很方便的设置和获取元素的 style 属性. 某些情况下,我们不能使用 JQ

JavaScript HTML DOM - 改变CSS

JavaScript HTML DOM - 改变CSS HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法: document.getElementById(id).style.property=new style 下面的例子会改变 <p> 元素的样式: 实例 <html><body> <p id="p2">Hello World!</p&

JavaScript总结--DOM

对于Web前端开发,归根结底是三部分内容: 结构:HTML 表现:CSS 行为:JavaScript 在行为方面,主要是由JavaScript通过DOM对网页进行操作来实现的.DOM(Document Object Model),即文档对象模型,可以理解为一种接口. 用导图总结一下DOM涉及的内容. 这里,我们经常用的操作就是元素的获取,添加,如:getElementById,CreateElement,appendChild.不论是之后学的JQuery,还是Ajax,都要对网页进行操作,所以D

JavaScript HTML DOM 元素(节点)

JavaScript HTML DOM 元素(节点) 创建新的 HTML 元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. 实例 <div id="div1"><p id="p1">This is a paragraph.</p><p id="p2">This is another paragraph.<

Javascript操作DOM常用API总结

Javascript操作DOM常用API总结 原文地址:http://luopq.com/2015/11/30/javascript-dom/ 类型 Node类型(ELEMENT_NODE:1 ATTRIBUTE_NODE:2 TEXT_NODE:3 COMMENT_NODE:8``DOCUMENT_NODE:9 DOCUMENT_FRAGMENT_NODE:11) 节点创建型(createElement createTextNode cloneNode createDocumentFragme

javascript操作DOM方法整理

原自本人整理,主要来源于这里.大家如果有补充,十分欢迎大家留言. 一.获取节点 document.getElementById();//id="" document.getElementsByName();//name="" document.getElementsByTagName();//"input" document.getElementsByClassName();//class="" 二.css选择器 docume

高性能Javascript(2) DOM编程

第三部分 DOM编程 文档对象模型(DOM)是一个独立于语言的,使用XML和HTML文档操作的应用程序接口(API).在浏览器中,主要与HTML文档打交道,在网页应用中检索XML文档也很常见.DOM APIs主要用于访问这些文档中的数据.尽管DOM是与语言无关的API,在浏览器中的接口却是以JavaScript实现的.客户端大多数脚本程序与文档打交道,DOM就成为JavaScript代码日常行为中重要的组成部分. 2.1 DOM Access and Modification  DOM访问和修改

javascript之DOM优化

DOM访问和操作是现代网页应用中很重要的一部分.但每次你通过“桥梁”从ECMAScript到DOM时,都会被收取“过路费”.为减少DOM编程中的性能损失,具体要注意的有: 一.最小化DOM访问,在javascript端做尽可能多的事. Js代码   function innerHTMLLoop() { for (var count = 0; count < 15000; count++) { document.getElementById('here').innerHTML += 'a'; }

2014年辛星解读Javascript之DOM快速入门

在Javascript的知识中,有一个所谓的DOM,即文档对象模型,我们可以通过它来访问HTML文档的元素,当网页被加载的时候,浏览器会去创建DOM,有了这个DOM,我们可以使用Javascript去改变页面中HTML元素和属性,改变CSS样式,能够对页面中的事件作出响应. 首先就是查找一个HTML元素,我们可以通过三种方式来做到,即通过id.标签名和类名,通过id是使用getElementById方法,它是doucument的一个方法,通过标签名则可以使用getElementsByTagNam

Javascript 获取dom的宽度 随笔一

javascript 中 offsetWidth 获得的并不是 真实的宽度 不等于 style.width ;offetWidth 实际上获得的是物体的盒模型尺寸. 包括 border padding 等尺寸.obj.style.width 只能获得行间样式宽度,不能获得样式表中的样式中的宽度 获取不在行间宽度的方法 function getStyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; /*仅支持IE*