知识点整理

行级元素、块级元素有哪些,区别是什么

1.行级元素/行内元素

display:inline;javascript

多个元素占一行css

不能够设置宽高html

常见行级元素java

<a> <span> <i> <strong> <em>
复制代码

行级元素 只能嵌套行级元素正则表达式

2.块级元素

display:block;数组

本身占一行浏览器

能够设置宽高函数

不设置width的时候 width 默认是100%spa

不设置height的时候 高被里面内容撑开指针

块级元素能够嵌套 行级元素、行级块元素、块级元素

特例:h1~h6 p 不能够嵌套块级元素

常见块级元素

<div> <p> <ul> <li> <ol> <h1~h6> <table>
复制代码

常见css选择器

id选择器

#id{
    
}
复制代码

class选择器

.class{
    
}
复制代码

标签选择器

标签{
    
}
复制代码

后代选择器

a b{
    
}
复制代码

⼦代选择器

a>b{
    
}
复制代码

伪类选择器

:
复制代码

伪元素选择器

::
复制代码

优先级总结排序:

!important > 行内样式 > ID选择器 > 类选择器 > 元素 > 通配符 > 继承 > 浏览器默认属性

标准盒模型&怪异盒模型

标准盒模型

在标准模式下,一个块的总宽度= width + margin(左右) + padding(左右) + border(左右)
怪异盒模型(IE盒模型)
一个块的总宽度= width + margin(左右)(即width已经包含了padding和border值)

js基本数据类型有哪些

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.给父元素设置高度

常见的position及特色

常规取值: 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基本数据类型有哪些

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堆内存中。
复制代码

相关文章
相关标签/搜索