内联(非块状)元素可以定义宽度和高度
-
block:将行级别元素转为块级别元素
-
inline:将块级别元素转为行级别元素
-
inline-block:不能自动换行,但是可以设置宽高
行级元素(内联元素)
- 元素特点:
内容决定所占位置
不可以通过css改变宽高
- 语法格式:
display:inline
- 代表元素:
<span> <strong> <em> <a> <del>
块级元素
- 元素特点:
独占一行
可以通过css改变宽高
- 语法格式:
display: block
- 代表元素:
<div> <p> <ul> <li> <ol> <form> <address>
行级块元素
-
元素特点:
内容决定所站位置
可以通过css改变宽高 -
语法格式:
display: inline-block
- 代表元素:
<img>
container.clientWidth
-
ele.clientWidth = 宽度 + padding
-
ele.offsetWidth = 宽度 + padding + border
-
ele.scrollTop = 被卷去的上侧距离
-
ele.scrollHeight = 自身实际的高度(不包括边框)
nth-child(n)使用注意
:nth-child(n) ---->选中某个元素,该元素必须是某个父元素下的第n个子元素;
p:nth-child(n) ---->选中p元素,且该p元素必须是某个父元素下的第n个子元素
注意:n是从1开始的
如下代码,p:nth-child(1),只会选中第二个div中第一个子元素p;
不会选中第一个div中的第一个p,因为第一个div中第一p元素不是第一个子元素
<style>
p:nth-child(1){
color:red
}
</style>
<div style="border:1px solid">
<span>div span中第一个段落。</span>
<p>div 中第一个段落。</p>
<p>div 中的最后一个段落。</p>
</div><br>
<div style="border:1px solid">
<p>另一个 div 中第一个段落。</p>
<p>另一个 div 中的最后一个段落。</p>
</div>
正方向范围
li:nth-child(n+6)
选中从第6个开始的子元素
负方向范围
:nth-child(-n+9)
选中从第1个到第9个子元素。使用 :nth-child(-n+9) ,就相当让你选中第9个和其之前的所有子元素
获取 input 节点的正确方法是( )
<form class="file" name="upload">
<input id="file" name="file" />
</form>
A:返回所有元素节点列表里面的第1个应该写成
document.querySelectorAll(’#file’)[0]
B:id选择器,id是唯一的
document.getElementById(‘file’)
C:标签名选择器
document.getElementByTagName(‘input’)[0]
在标准的 JavaScript 中, Ajax 异步执行调用基于Event和callback才能实现
JavaScript是单线程的,浏览器实现了异步的操作,整个js程序是事件驱动的,每个事件都会绑定相应的回调函数
匿名函数具有全局作用域
var myObject = {
foo: "bar",
func: function() {
var self = this;
console.log(this.foo);
console.log(self.foo);
(function() {
console.log(this.foo);
console.log(self.foo);
}());
}
};
myObject.func();
依次输出 bar bar undefined bar
1.第一个this.foo输出bar,因为当前this指向对象myObject。
2.第二个self.foo输出bar,因为self是this的副本,同指向myObject对象。
3.第三个this.foo输出undefined,因为这个IIFE(立即执行函数表达式)中的this指向window。
4.第四个self.foo输出bar,因为这个匿名函数所处的上下文中没有self,所以通过作用域链向上查找,从包含它的父函数中找到了指myObject
对象的self。
理解关键:方法/函数是由谁(对象) 调用 的,方法/函数内部的 this 就指向谁(该对象);
注意:被谁调用,不是处于谁的作用域,即使在作用域
1、func是由myObject调用的,this指向 myObject。
2、self指向myObject,相当于 myObject的this的副本。
3、这个立即执行匿名函数表达式(IIFE)是由window调用的,this指向 window 。
4、IIFE的作用域处于myObject.func的作用域中,本作用域找不到self变量,沿着作用域链向上查找self变量,找到了指向 myObject对象的 self。
不支持冒泡事件
常见的不支持冒泡事件有
①focus
②blur
③mouseenter
④mouseleave
⑤load
⑥unload
⑦resize