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上面去

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

转载于:https://www.cnblogs.com/Gary-Guoweihan/p/4774673.html

JavaScript css-dom相关推荐

  1. 【前端】第二章 HTML、CSS、JavaScript、DOM和JSON

    第二章 HTML.CSS.JavaScript.DOM和JSON 文章目录 第二章 HTML.CSS.JavaScript.DOM和JSON 一.HTML 1.表单 2.小票 3.注册页面 4.音视频 ...

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

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

  3. Javascript操作DOM常用API总结

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

  4. Javaweb学习笔记——(三)——————JavaScript基础DOM基础

    day03 1.js的String对象 **创建String对象 ***var str = "abc"; **方法和属性(文档) ***属性 lenth:字符串的长度 ***方法 ...

  5. 【repost】Javascript操作DOM常用API总结

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

  6. 前端:JS/28/CSS DOM动态样式(style对象,style 对象属性与CSS属性的转换),Event DOM,事件对象简介(DOM和IE中的Event对象),实例:点出满天小星星

    CSS DOM动态样式 使用JS操作CSS中的各个属性: JS只能操作或修改行内样式,如:imgObjstyle.border = "1px solid red"; 对于类样式,通 ...

  7. JavaScript中DOM操作

    Web前端基础修炼 HTML基本标签详解与运行截图 CSS基本操作详解及截图演示 JavaScript基础(ECMAScript) JavaScript中DOM操作 JavaScript中BOM操作 ...

  8. JavaScript 之 DOM中的三大对象

    下面是对JavaScript DOM中三大对象的整理,希望可以帮助到有需要的小伙伴. JavaScript 之 DOM中的三大对象 一.Document对象 1.Document对象是什么 Docum ...

  9. JavaScript操作DOM对象 Day05

    JavaScript操作DOM对象 0 核心 浏览器网页就是一个Dom树形结构! 获取Dom节点:得到Dom节点 更新:更新Dom节点 添加:添加一个新的节点 删除:删除一个Dom节点 要操作一个Do ...

  10. JavaScript + CSS/CSS3 + HTML 网页登陆 + 注册界面设计

    登陆界面设计 撸代码之前先来看一看效果图: 登陆界面由一个简单的表单(头像.用户名.密码.登陆按钮.记住我.取消.忘记密码),创建了一个CSS3的缩放效果构成.需要做浏览器(Firefox.Safar ...

最新文章

  1. 计算机应用基础统考操作,全国统考计算机应用基础操作题
  2. Node.js 0.8.21 稳定版发布
  3. python代码示例图形-Python使用matplotlib绘制三维图形示例
  4. android - 拍照
  5. 动态变量和静态变量的区别,堆和栈的区别
  6. CML 2020 | 显式引入对分类标签的描述,如何提高文本分类的效果?
  7. Deep Learning---py-faster-rcnn基于PASCAL VOC数据集训练模型
  8. hadoop伪分布式配置修改配置文件的时候无法保存(没有权限保存)
  9. 域用户频繁被锁定怎么解决_视频素材太多怎么办?看Mac用户如何使用NAS解决存储难题...
  10. spring boot 集成 log4j 解决与logback冲突问题
  11. linux下安装python3.6
  12. 初学angularJS 个人总结 错误排除
  13. Common lisp之加载方式(一)
  14. mysql中on关键字和where关键字
  15. 前端性能优化学习(慕课网)笔记
  16. Java多窗口编程示例
  17. 微信团购小程序怎么做?一般要多少钱?
  18. Convert Binary Search Tree to Sorted Doubly Linked List
  19. html调用js自动播放音乐,使用html js实现点击文本和播放音乐的功能
  20. Java枚举深入理解以及HttpStatus类的使用

热门文章

  1. Struts 2杂谈(2):如何向标签文件中的Struts 2标签传递参数值
  2. 《Non-invasive Fetal ECG Signal Quality Assessment for Multichannel Heart Rate Estimation》论文解读-废弃
  3. ubuntu20.04安装deepin qq
  4. flink更新flink-shaded-hadoop-3-uber
  5. flink的web ui出现Server Response:Unable to load requested file /jars
  6. ERRORS: ?: (admin.E408) 'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEW
  7. 基于Pyspark和Thunder的神经图像数据分析-实验运行结果
  8. .ipynb转化为.py文件后批量删除一大堆#In[53]
  9. 58.配置tomcat监听80 虚拟主机 日志
  10. 406(浏览器接收的响应类型和服务器返回的响应类型不匹配)