JS它DOM

JS它DOM

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

DOM:document object model。文档对象模型。它主要由许多节点。而基于JS对象的一切视角,DOM核心是节点对象和操作方法的属性。从下面三方面来介绍DOM。

一、节点查找与操作

     这部分表面看起来有些碎,但细细挖掘还是有非常大规律可循的。

见导图:

    JS它DOM

二、DOM之CSS样式

   对于这部分的内容,涉及到的也是CSS样式的获取和操作。

获取:

     1.行内:

	var box=document.getElementById('box');
	alert(box.style.width);

     2.rule获取

	var sheet=document.styleSheets[0];
		var rule=(sheet.cssRules|| sheet.rules)[0];
		alert(rule.style.width);

    3.计算获取  

	var style = window.getComputedStyle ?
	window.getComputedStyle(box, null) : null || box.currentStyle;//考虑各浏览器兼容  
	style.width; 
       style.height

操作:实现跨浏览器兼容操作

    1.插入

functioninsertRule(sheet,selectorText,cssText,position){
    if(sheet.insertRule){
      sheet.insertRule(selectorText+'{'+cssText+'}',position);                                                                     }else if(sheet.addRule){                                                                                                              sheet.addRule(selectorText,cssText,position);
}

   2.删除

function deleteRule(sheet,position){
 if (sheet.deleteRule){ //假设这样的方式存在
    sheet.deleteRule(position); //非IE
}else if(sheet.removeRule){
	sheet.removeRule(position);
}

   3.改动:通过赋值,来改动CSS样式

		window.onload=function(){
			//跨浏览器兼容rules
			var sheet=document.styleSheets[0];
			var rules=sheet.cssRules || sheet.rules;
			var rule1=rules[0];
			rule1.style.color='green'; //这样的能够在链接CSS样式中改动详细的属性
			var box=document.getElementById('box');
			box.style.color='blue'; //这样的方法改动的是行内样式
		}


小结:针对于CSS样式不管是属性获取还是对它操作。都能够分为三种情况行内,rule,和计算。而这三种仅仅有行内和rule操作为可读可写,计算样式仅仅供获取,不能进行改动。

三、元素尺寸和位置

   通过上述CSS样式的方式,我们也是能够获取DOM中各个元素的尺寸和位置的,但有一个弊端:当元素中存在pading,margin这些样式设计时,这些方法便不能获得一些元素真正的大小和位置。

JS中提供了专门儿用于获取元素尺寸和大小的方法。

实际大小:针对于元素的实际大小。主要与四个因素有关,padding。margin,border,scroll。而以下提供的几种方法,针对于不同的因素。会有不同的结果,仅依据需求使用就可以

   JS它DOM

周边大小:

 JS它DOM

    

 

   小结:DOM是JS学习的一个核心内容。当中涉及到的元素节点的属性和基本操作也是前台页面中最重要的组成,通过这些,才干使JS中基于对象的思想发挥作用。能够说,B/S UI页面中的一切都是建立在这些元素的基础之上的。


版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117381.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java集合篇:List总结

    Java集合篇:List总结

  • pycharm2021专业版永久激活码【2021最新】

    (pycharm2021专业版永久激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 什么是ef core_vector嵌套vector

    什么是ef core_vector嵌套vectorEFcore相比EF6,对于DDD的支持更好。比如私有字段的映射,私有数组多对多的映射等等。 EFcore有几个坑需要注意:1.多对多的关系,因为只支持HasOne和Withmany,不支持HasMany。因此必须手动建立多对多的关系表的entity定义类,samplecode如下:classMyContext:DbContext{    pub…

  • vs2019 注册码_vs2019professional密钥

    vs2019 注册码_vs2019professional密钥VS2019正式版注册码秘钥VisualStudio2019EnterpriseBF8Y8-GN2QH-T84XB-QVY3B-RC4DFVisualStudio2019ProfessionalNYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y

  • anaconda虚拟环境安装tensorflow_开源ocr哪个好

    anaconda虚拟环境安装tensorflow_开源ocr哪个好由于我需要使用爬虫进行练习,用的是windows10,所以安装过程很是艰辛。报错1:用python的pip安装tesserocr,发生如下代码错误:经过查询tesserocr安装环境要求,需要leptonica-1.71版本以上文件;确认代码中错误,确实发现安装过程中leptonica文件无法找到。解决方法:用Anaconda安装python环境。使用Anacond…

  • 三星note3怎样刷原生Android,三星note三可以刷原生android系统吗?

    三星note3怎样刷原生Android,三星note三可以刷原生android系统吗?可以的。1刷之前要备份好个人的通讯录等资料。如果你的手机使用正常就不用去刷了。自己刷也是可以的,但要到网上下载手机软件,三星的网上版本多,有些是专为水货编写的。2刷机最好在风险可控前提下的刷机。当前DIY的版本都是基于原版的,只不过是将原来的图片替换成另外的图片,将原来的铃声替换成另外的铃声,没有动核心部分。只是替换更改了部分图片、铃声或者菜单字符等,所以不应该有不良影响,按步骤操作,刷机是基本上…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号