HTML负责结构层,网页的结构层由HTML或者XHTML之类的标记语言负责构建

CSS负责表示层,描述页面内容应该如何呈现。

JavaScript负责行为层,负责内容应该如何响应事件这一问题。

能利用css解决的问题不要用js去实现,能用css实现的内容不要在html中使用,每个都应该严格负责自己的领域。

文档里的每个元素都是对象(一切皆对象)

文档的每个元素节点都有一个属性style,style包含着元素的样式,查询这个属性将返回一个对象而不是一个简单的字符串,样式都放在这个style对象的属性里

因为每个属性都会包含多个样式,所以要返回一个对象才比较好对属性进行操作!

格式:element(元素).style.property(属性样式)

如果要得到一个标签的样式:

  1. 从文档里把这个元素找出来
  2. 利用element.style.property获取样式(css样式名之间的-要用驼峰命名法来表示,否则js无法解析。例如:font-family-->fontFamily)

style属性的一个很大的局限性:style只能返回内嵌样式,即只有把css style 添加到标记里,才能用DOM style属性去查询那些信息

                   来自外部的.css文件已经不能再用DOM style检索出来了。

ps:颜色:在css用颜色的英文名来命名颜色,如red,在js中会显示red,如果用#000000类似的用法,js会显示为RGB的格式

为内嵌样式设置属性:

style属性的各个样式,不仅可读,还可写。可以通过style属性去更新样式;

格式: element(元素).style.property(要改变的属性样式) = " value "(引号必加);

注意:只有在css不方便的场合,才可以使用DOM对文档的样式做一些的小的增强,但是css始终是主体;

js特别擅长处理重复性任务,用一个while或者for循环就可以轻松地遍历一个很长的列表

在.CSS文件中改变样式:(确保网页的表示层和行为层分离的彻底)

与其使用DOM直接改变某个元素的样式,不如通过JavaScript代码去更新这个元素的class属性

技巧:在css样式表里写多一个class属性的样式表,利用setAttribute方法来把标签中class属性的值改变,从而得到新的样式。

className属性:有一个更简单的办法更新class的是使用className属性(是一个可读,可写的属性),只要是元素节点都有这个属性

获取元素的class值,格式: element(元素).className

用className属性和赋值操作符可以设置一个元素的class属性值

格式: element(元素).className = "classname"

使用这个操作可以把新的class值把原先的class的值替换掉。

但有一个问题是,我们有时并不是想要替换掉这个class值,我们只是想在原来的class的值后面再追加一个class的值。

可以使用字符串拼接的方法: element(元素).className += " classname"   注意:在classname前面需要有一个空格

推荐步骤:

  1. 检查className属性的值是否为空
  2. 如果是,则直接把class的设置值直接赋给className
  3. 如果不是,则把一个空格和新的class设置值追加到className上面去

对函数进行抽象可以使函数的使用范围更广,通过赋予参数调用的方式;当发现可以对一个函数进行抽象时,应该立刻就去做!!!!!!

JavaScript css-dom的更多相关文章

  1. JavaScript HTML DOM - 改变CSS

    JavaScript HTML DOM - 改变CSS HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法 ...

  2. HTML、css、javascript、DOM编程

    HTML.css.javascript.DOM编程 一.Html 1.1html概述 Html就是超文本标记语言的简写,是最基础的网页语言,其代码都是由标签所组成,是通过标签来定义的语言,代码不需要区 ...

  3. javascript --- javascript与DOM

    javascript与DOM: 我们来个例子,一个HTML里包含一段文本和一个无序的列表. <p id="intro">My first paragraph...< ...

  4. Javascript中DOM技术的的简单学习

    第十四课DOM技术概述1:DOM概述 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节 ...

  5. JavaScript HTML DOM 元素(节点)

    JavaScript HTML DOM 元素(节点) 创建新的 HTML 元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素 ...

  6. JavaScript HTML DOM

    JavaScript HTML DOM 通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象 ...

  7. JavaScript 操作 DOM 常用 API 总结

    文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...

  8. javascript操作DOM的方法与属性

    文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构. 将HTML代码分解为DOM节点层次图: ...

  9. 第一百一十六节,JavaScript,DOM操作样式

    JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检 ...

  10. JavaScript的DOM(文档对象)基础语法总结1

    ---恢复内容开始--- 前言:HTML文档可以说由节点构成的集合,DOM节点有: 1). 元素节点:上图中<html>.<body>.<p>等都是元素节点,即标签 ...

随机推荐

  1. Android 延时执行任务的三种简单方法

    开启一个新的线程 new Thread() { @Override public void run() { try { Thread.sleep(2000); } catch (Interrupted ...

  2. Unity 依赖注入之二

    1. 构造子注入 1.1 构造子注入初级代码 container.RegisterType<IMyWork, MyWork>(new InjectionConstructor(new Bo ...

  3. iOS之关于开发的那点破事(一)

    前言: 前段时间,经理突然找我说:能不能在项目中对缓存的图片进行加密?当时就感到疑惑,就说:可以是可以,但为什么要这样做?有什么意义没? 我们都知道,apple使用的沙盒(sandbox)机制,这种机 ...

  4. 在CentOS 7中安装与配置JDK8

    参考命令:http://www.jb51.net/os/RedHat/73016.html来进行安装 安装说明 系统环境:centos7 安装方式:rpm安装 软件:jdk-8u25-linux-x6 ...

  5. unity 协程

    StartCoroutine在unity3d的帮助中叫做协程,意思就是启动一个辅助的线程. 在C#中直接有Thread这个线程,但是在unity中有些元素是不能操作的.这个时候可以使用协程来完成. 使 ...

  6. XV Open Cup named after E.V. Pankratiev. GP of Tatarstan

    A. Survival Route 留坑. B. Dispersed parentheses $f[i][j][k]$表示长度为$i$,未匹配的左括号数为$j$,最多的未匹配左括号数为$k$的方案数. ...

  7. Android SDK Manager 更新代理配置

    转自:http://www.cnblogs.com/tao560532/p/4483067.html 出现问题: 消除SDK更新时,有可能会出现这样的错误:Download interrupted: ...

  8. Attention:本博客暂停更新

    Attention:本博客暂停更新 2016年11月17日08:33:09 博主遗产 http://www.cnblogs.com/radiumlrb/p/6033107.html Dans cett ...

  9. jsonp帮助你知道你关注的他或她喜欢什么歌曲

    利用腾讯提供的QQ音乐API,返回一段对方在QQ音乐收藏的歌曲名称json数据,并对该json做解析,就能知道你的那个他或她喜欢听什么歌曲了,然后你就知道他/她的品位了,然后就自己看着办了,嘿嘿.我只 ...

  10. initWithCoder与initWithFrame的区别

    1. initWithFrame方法是什么?   initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸). 当然,其他UI对象,也有initWithFrame方 ...