display:inline;javascript
多个元素占一行css
不能够设置宽高html
常见行级元素java
<a> <span> <i> <strong> <em>
复制代码
行级元素 只能嵌套行级元素正则表达式
display:block;数组
本身占一行浏览器
能够设置宽高函数
不设置width的时候 width 默认是100%spa
不设置height的时候 高被里面内容撑开指针
块级元素能够嵌套 行级元素、行级块元素、块级元素
特例:h1~h6 p 不能够嵌套块级元素
常见块级元素
<div> <p> <ul> <li> <ol> <h1~h6> <table>
复制代码
id选择器
#id{
}
复制代码
class选择器
.class{
}
复制代码
标签选择器
标签{
}
复制代码
后代选择器
a b{
}
复制代码
⼦代选择器
a>b{
}
复制代码
伪类选择器
:
复制代码
伪元素选择器
::
复制代码
优先级总结排序:
!important > 行内样式 > ID选择器 > 类选择器 > 元素 > 通配符 > 继承 > 浏览器默认属性
标准盒模型
Number类型
Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。
NaN:非数字类型。特色:① 涉及到的 任何关于NaN的操做,都会返回NaN ② NaN不等于自身。
isNaN() 函数用于检查其参数是不是非数字值。
isNaN(123) //false isNaN("hello") //true
String类型
字符串有length属性。
字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。
Boolean类型
该类型只有两个值,true和false
Undefined类型
只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。
Null类型
null类型被看作空对象指针,前文说到null类型也是空的对象引用。
嵌套关系
1.给父元素设置边框(透明的transparent),若是有外边距的大小要求,要把加上的边框减去
2.给父元素设置 overflow:hidden(溢出隐藏)
3.给父元素或子元素设置 绝对定位(position:absolute)
4.给父元素或子元素设置 浮动
并列关系
1.把两个元素的外边距所有设置在一个元素上
2.当元素没有边框或背景色等影响因素存在时,能够给元素加内边距,也能达到效果。
元素浮动会形成塌陷问题
1.父元素溢出隐藏 overflow:hidden;
2.新增一个空的子元素 (id="clear") 而后设置样式 (清除浮动)clear:both/right/left
#clear{
clear:both
}
复制代码
3.把全部浮动的元素加入一个相同的类:clearfix 而后把该类设置为伪元素(::)并设置样式
.clearfix::after{
content:'';
display:block;
clear:both;
}
复制代码
伪元素有两种:after(在容器的最后面) before(在容器的最前面)
4.给父元素设置高度
常规取值: 1.static(静态) 2.Relative(相对) 3.Absolute(绝对) 4.fixed(固定)
position: relative;相对定位
1> 不影响元素自己特性(不管区块元素仍是内联元素会保留其本来特性)
2> 不会使元素脱离文档流(元素本来位置会被保留,即改变位置也不会占用新位置)
3> 没有定位偏移量时对元素无影响(相对于自身本来位置进行偏移)
4>提高层级(用z-index样式的值能够改变一个定位元素的层级关系,从而改变元素的覆盖关系,值越大越在上面,z-index只能在position属性值为relative或absolute或fixed的元素上有效。)(两个都为定位元素,后面的会覆盖前面的定位)
position: absolute;绝对定位
1> 使元素彻底脱离文档流(在文档流中再也不占位)
2> 使内联元素在设置宽高的时候支持宽高(改变内联元素的特性)
3> 使区块元素在未设置宽度时由内容撑开宽度(改变区块元素的特性)
4> 相对于最近一个有定位的父元素偏移(若其父元素没有定位则逐层上找,直到document——页面文档对象)
5> 相对定位通常配合绝对定位使用(将父元素设置相对定位,使其相对于父元素偏移)
6> 提高层级(同相对定位)
position: fixed;固定定位
fixed生成固定定位的元素,相对于浏览器窗口进行定位。
static(静态)
HTML元素的默认值,不受top、bottom、left、right属性影响,元素出如今正常的文档 流中
js中有5种数据类型:Undefined、Null、Boolean、Number和String
Undefined
Undefined类型只有一个值,即undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。 但使人困惑的是,对未初始化的变量执行typeof会返回undefined。
Null
Null类型只有一个值,即null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操做符检测null值时会返回“object”的缘由。 若是定义的变量准备在未来用于保存对象,那么最好将该变量初始化为null而不是其余值。这样一来,只要直接检查null值就能够知道相应的变量是否已经保存了一个对象的引用。 实际上,undefined值是派生自null值,所以ECMA-262规定对它们的相等性检测要返回true。
Boolean
boolean值有两个字面值:true和false。这两个值和数字值不是一回事,ture不必定等于1,而false也不必定等于0
Number
最基本的数值字面量格式是十进制整数,十进制整数能够直接输入。 整数能够经过八进制或十六进制的字面值来表示。 其中八进制字面值的第一位必须是0,而后是八进制数字序列(0-7)。若是字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被看成十进制数值解析。 八进制字面量在严格模式是无效的,会致使支持该模式的JavaScript引擎抛出错误。 十六进制的前两位必须是0x,后跟任何十六进制数字,其中A-F能够大写也能够小写。 进行算术计算时,全部以八进制和十六进制表示的数值最终都将被转换为十进制数值。
String
String类型用于标识由零活多个16位Unicode字符组成的字符序列,即字符串。
一、栈(stack)和堆(heap)
stack为自动分配的内存空间,它由系统自动释放;而heap则是动态分配的内存,大小也不必定会自动释放
二、数据类型
JS分两种数据类型:
基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6),这些类型能够直接操做保存在变量中的实际值。
引用数据类型:Object(在JS中除了基本数据类型之外的都是对象,数据是对象,函数是对象,正则表达式是对象)
三、基本数据类型(存放在栈中)
基本数据类型是指存放在栈中的简单数据段,数据大小肯定,内存空间大小能够分配,它们是直接按值存放的,因此能够直接按值访问
复制代码
四、引用数据类型(存放在堆内存中的对象,每一个空间大小不同,要根据状况进行特定的配置)
引用类型是存放在堆内存中的对象,变量实际上是保存的在栈内存中的一个指针(保存的是堆内存中的引用地址),这个指针指向堆内存。
引用类型数据在栈内存中保存的其实是对象在堆内存中的引用地址。经过这个引用地址能够快速查找到保存中堆内存中的对象
复制代码
var a = [1,2,3,4,5];
var b = a;//传址 ,对象中传给变量的数据是引用类型的,会存储在堆中;
var c = a[0];//传值,把对象中的属性/数组中的数组项赋值给变量,这时变量C是基本数据类型,存储在栈内存中;改变栈中的数据不会影响堆中的数据
alert(b);//1,2,3,4,5
alert(c);//1
//改变数值
b[4] = 6;
c = 7;
alert(a[4]);//6
alert(a[0]);//1
复制代码
从上面咱们能够得知,当我改变b中的数据时,a中数据也发生了变化;可是当我改变c的数据值时,a却没有发生改变。
这就是传值与传址的区别。由于a是数组,属于引用类型,因此它赋予给b的时候传的是栈中的地址(至关于新建了一个不一样名“指针”),而不是堆内存中的对象。而c仅仅是从a堆内存中获取的一个数据值,并保存在栈中。因此b修改的时候,会根据地址回到a堆中修改,c则直接在栈中修改,而且不能指向a堆内存中。
复制代码