一、随手记
1、面试问题:我们和什么打交道最多?
答案是浏览器,那么主流浏览器有哪些,它的内核是什么呢?
| 主流浏览器 | 内核 |
| IE | trident |
| Firefox | Gecko |
| Geogle Chrome | webkit/blink |
| Safari | webkit |
| Opera | presto |
2、引入CSS有三种方式
①行间样式
这种是在body里的,可以直接在标签属性里用style来写CSS,如:
<!DOCTYPE html>
<html>
<head>
<title>列表</title>
</head>
<body>
<div style="100px;height:100px;background-color:red;">样式</div>
</body>
</html>
②页面级CSS
这种样式在head部分,如:
<!DOCTYPE html>
<html>
<head>
<title>列表</title>
<style type="text/css">
div{
100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<div>样式</div>
</body>
</html>
③外部CSS文件
这种样式是html一个文件,css一个文件
no4.html
<!DOCTYPE html>
<html>
<head>
<title>列表</title>
<link rel="stylesheet" type="text/css" href="no3.css">
</head>
<body>
<div>样式</div>
</body>
</html>
no3.css
div{
100px;
height: 100px;
border-radius: 50%;
background-color: black;
}
3、选择器
选择器也有很多,有id选择器、class选择器、标签选择器、通配符选择器、属性选择器等
①id选择器

id选择器类似身份证,和组件一对一的关系。
②clss选择器

class选择器类似于一款衣服,可以被多个用户使用。
③标签选择器

标签选择器就是,同时为所有该标签的内容使用该样式
④通配符选择器


⑤属性选择器


⑥父子选择器/派生选择器


由此可见,父子选择器不是直接的父子关系,间接的也有效(爷孙)。
⑦直接子元素选择器


由此可见,直接子元素选择器不承认间接关系,必须层层筛选。
⑧并列选择器


用p.demo,精确到我希望为哪个文本片段布置样式。
⑨分组选择器


⑩相邻兄弟选择器


相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
h1 + p {margin-top:50px;} 这个选择器读作:“选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”。
用一个结合符只能选择两个相邻兄弟中的第二个元素。
4、选择器的优先级
优先级排序:
| 选择器 | CSS权重 |
| !important | Infinity |
| 行间样式 | 1000 |
| id | 100 |
| class|属性|伪类 |
10 |
| 标签 | 1 |
| 通配符 | 0 |
CSS权重小知识:10和1并不是十进制或二进制,而是256进制,即01+255=10,所以1和10之间的差距是差很远的。
5、权重的计算

如图,最终显示的文本是红色背景色的1234567,因为#idDiv p的权重比.classDiv .classP大。
权重是可以用加法来算的,#idDiv(100)+p(1) > .classDiv(10)+ .classP(10),所以一定会显示第一个样式。