前端面试复习笔记

题目:输入一个链表,从尾到头打印链表每个节点的值。 思路:利用栈来实现,首先根据头结点以此遍历链表节点,将节点加入到栈中。当遍历完成后,再将栈中元素弹出并打印,以此来实现。栈的 实现可以利用 Array 的 push 和 pop 方法来模拟。 。。。。。。。了解详情请下载附件。

应用介绍

CSS 优先级算法如何计算?

相关知识点:

CSS的优先级是根据样式声明的特殊性值来判断的。

选择器的特殊性值分为四个等级,如下:

(1)标签内选择符x,0,0,0

(2)ID选择符0,x,0,0

(3)class选择符/属性选择符/伪类选择符 0,0,x,0

(4)元素和伪元素选择符0,0,0,x

计算方法:

(1)每个等级的初始值为0

(2)每个等级的叠加为选择器出现的次数相加

(3)不可进位,比如0,99,99,99

(4)依次表示为:0,0,0,0

(5)每个等级计数之间没关联

(6)等级判断从左向右,如果某一位数值相同,则判断下一位数值

(7)如果两个优先级相同,则最后出现的优先级高,!important也适用

(8)通配符选择器的特殊性值为:0,0,0,0

(9)继承样式优先级最低,通配符样式优先级高于继承样式

(10)!important(权重),它没有特殊性值,但它的优先级是最高的,为了方便记忆,可以认为它的特殊性值为1,0,0,0,0。

计算实例:

(1)#demo a{color: orange;}/*特殊性值:0,1,0,1*/

(2)div#demo a{color: red;}/*特殊性值:0,1,0,2*/

注意:

(1)样式应用时,css会先查看规则的权重(!important),加了权重的优先级最高,当权重相同的时候,会比较规则的特殊性。

(2)特殊性值越大的声明优先级越高。

(3)相同特殊性值的声明,根据样式引入的顺序,后声明的规则优先级高(距离元素出现最近的)

 (4) 部分浏览器由于字节溢出问题出现的进位表现不做考虑

```

回答:

判断优先级时,首先我们会判断一条属性声明是否有权重,也就是是否在声明后面加上了!important。一条声明如果加上了权重,

那么它的优先级就是最高的,前提是它之后不再出现相同权重的声明。如果权重相同,我们则需要去比较匹配规则的特殊性。

一条匹配规则一般由多个选择器组成,一条规则的特殊性由组成它的选择器的特殊性累加而成。选择器的特殊性可以分为四个等级,

第一个等级是行内样式,为1000,第二个等级是id选择器,为0100,第三个等级是类选择器、伪类选择器和属性选择器,为0010,

第四个等级是元素选择器和伪元素选择器,为0001。规则中每出现一个选择器,就将它的特殊性进行叠加,这个叠加只限于对应的等

级的叠加,不会产生进位。选择器特殊性值的比较是从左向右排序的,也就是说以1开头的特殊性值比所有以0开头的特殊性值要大。

比如说特殊性值为1000的的规则优先级就要比特殊性值为0999的规则高。如果两个规则的特殊性值相等的时候,那么就会根据它们引

入的顺序,后出现的规则的优先级最高。

。。。。。。。想了解详情请下载附件。

文件列表(部分)

名称 大小 修改日期
Css.md35.35 KB2020-09-08
Html.md22.61 KB2020-09-08
JavaScript.md54.39 KB2020-09-08
工具.md1.21 KB2020-09-08
计算机操作系统.md15.41 KB2020-08-23
剑指offer.md16.80 KB2020-08-23
智力题.md4.15 KB2020-08-23
算法.md39.32 KB2020-08-23
计算机网络.md18.62 KB2020-09-08
面试记录.md3.82 KB2020-08-23
Css0.00 KB2020-08-23
Html0.00 KB2020-08-23
JavaScript0.00 KB2020-08-23
工具0.00 KB2020-08-23
操作系统0.00 KB2020-08-23
算法0.00 KB2020-08-23
计算机网络0.00 KB2020-08-23
面试记录0.00 KB2020-08-23
Front-End-Interview-Notebook0.00 KB2020-09-08

立即下载

相关下载

[前端面试复习笔记] 题目:输入一个链表,从尾到头打印链表每个节点的值。 思路:利用栈来实现,首先根据头结点以此遍历链表节点,将节点加入到栈中。当遍历完成后,再将栈中元素弹出并打印,以此来实现。栈的 实现可以利用 Array 的 push 和 pop 方法来模拟。 。。。。。。。了解详情请下载附件。
[前端面试知识题库] ## 数组 (array) 数组**是用来存储多个值的对象,每一个值有一个数字索引,并且可以是任意类型。** 对象的索引是字符串,数组的索引是数字。 同时数组作为一个单独的数据类型也有自己特定的一些方法,如```join``` ```push``` ```shift```等。
[前端面试题] 编程题 1. JS 字符串使用堆栈处理 "(a,b,(c,d),f,g)" 2. 二维数组操作 3. 用最简单的方式,求一个数组中最大的元素,例如 arr=[5,7,9,42,18,29] 4. 正则表达式,验证手机号码,验证规则:11位数字,以1位开头 5. 以下代码求结果
[前端面试常考问题整理] 创建 `ajax` 步骤: - 1.创建 `XMLHttpRequest` 对象 - 2.创建一个新的 `HTTP` 请求,并指定该 `HTTP` 请求的类型、验证信息 - 3.设置响应 `HTTP` 请求状态变化的回调函数 - 4.发送 `HTTP` 请求 - 5.获取异步调用返回的数据 - 6.使用 `JavaScript` 和 `DOM` 实现局部刷新

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部