声明:本人的所有博客皆为个人笔记,作为个人知识索引使用,因此在叙述上存在逻辑不通顺、跨度大等问题,希望理解。分享出来仅供大家学习翻阅,若有错误希望指出,感谢!
引入CSS样式表(书写位置)
行内式(内联样式)[不建议使用]
- 通过标签的style属性来设置元素的样式
- 任何HTML标签都拥有style属性,用来设置行内式
<标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </标签名>
- style其实就是标签的属性
- 样式属性和值中间是
- 多组属性值之间用
;
隔开
内部样式表(内嵌样式表)[不建议使用]
- 是将CSS代码集中写在HTML文档的head头部标签中,并且用style标签定义
<head>
<style type="text/CSS">
选择器(选择的标签) {
属性1: 属性值1;
属性2: 属性值2;
属性3: 属性值3;
}
</style>
</head>
- style标签一般位于head标签中,当然理论上他可以放在HTML文档的任何地方。
- type=“text/css” 在html5中可以省略。
- 只能控制当前的页面
外部样式表(外链式)[建议使用]
- 是将所有的样式放在一个或多个以**.CSS**为扩展名的外部样式表文件中,通过link标签将外部样式表文件链接到HTML文档中
<head>
<link rel="stylesheet" type="text/css" href="css文件路径">
</head>
- link 是个单标签
- link标签需要放在head头部标签中,并且指定link标签的三个属性
属性 | 作用 |
---|---|
rel | 定义当前文档与被链接文档之间的关系,在这里需要指定为“stylesheet”,表示被链接的文档是一个样式表文件 |
type | 定义所链接文档的类型,在这里需要指定为“text/CSS”,表示链接的外部文件为CSS样式表。我们都可以省略 |
href | 定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径 |
CSS样式规则
- 选择器用于指定CSS样式作用的HTML标签,花括号内是对该对象设置的具体样式。
- 属性和属性值以“键值对”的形式出现。
- 属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等。
- 属性和属性值之间用英文“:”连接。
- 多个“键值对”之间用英文“;”进行区分。
CSS选择器
-
选择器的作用是找到特定的HTML页面元素
-
选择器分为基础选择器和 复合选择器
CSS基础选择器
标签选择器
标签选择器(元素选择器)是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。
标签名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
类选择器
类选择器使用“.”(英文点号)进行标识,后面紧跟类名
-
类名选择器
.类名 { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
-
标签
<标签名 class='类名'></标签名>
PS:
- 类选择器使用“.”(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)
- 长名称或词组可以使用中横线来为选择器命名。
- 不要纯数字、中文等命名, 尽量使用英文字母来表示
类选择器特殊用法- 多类名
- 可以给标签指定多个类名,从而达到更多的选择目的
- 各个类名中间用空格隔开。
- 多类名选择器在后期布局比较复杂的情况下,还是较多使用的
id选择器
id选择器使用#
进行标识,后面紧跟id名
id选择器:
#id名 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
标签:
<标签名 id="id名"> </标签名>
-
元素的id值是唯一的,只能对应于文档中某一个具体的元素。
-
用法基本和类选择器相同。
id选择器和类选择器区别
- W3C标准规定,在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class
- id选择器和类选择器最大的不同在于 使用次数上
通配符选择器
通配符选择器用*
号表示, * 就是 选择所有的标签 他是所有选择器中作用范围最广的,能匹配页面中所有的元素。
* { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
会匹配页面所有的元素,降低页面响应速度,不建议随便使用
CSS 三大特性
CSS层叠性
-
所谓层叠性是指多种CSS样式的叠加。
是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉
-
原则:
- 样式冲突,遵循的原则是就近原则。 那个样式离着结构近,就执行那个样式。
- 样式不冲突,不会层叠
CSS继承性
-
子标签会继承父标签的某些样式,如文本颜色和字号。
想要设置一个可继承的属性,只需将它应用于父元素即可。
-
子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)
- 一般来说,与元素外观相关的样式会被继承;与元素在页面上的布局相关的样式不会被继承
-
inherit属性值
CSS中每个属性都有inherit属性值,该值的含义是设定当前元素使用其父元素的相应属性,如果父元素没有相应属性则继续往DOM树的顶端寻找,如果到根都没有则使用浏览器的默认属性值。该属性值可以强制继承不能被继承的属性。
CSS优先级
定义CSS样式时,经常出现两个或更多规则应用在同一元素上,此时,
- 选择器相同,则执行层叠性
- 选择器不同,就会出现优先级的问题
引入方式不同:采用就近原则,也就是谁离的近,听谁的
行内样式优先级>内部样式表优先级>外部样式表优先级
1.权重计算公式
标签选择器 | 计算权重公式 |
---|---|
继承或者 * | 0,0,0,0 |
每个元素(标签选择器) | 0,0,0,1 |
每个类,伪类 | 0,0,1,0 |
每个ID | 0,1,0,0 |
每个行内样式 style="" | 1,0,0,0 |
每个!important 重要的 | ∞ 无穷大 |
属性:属性值!important;
-
值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。
-
继承的权重是0
2.权重叠加
交集选择器,后代选择器等,是有多个基础选择器组合而成,此时就会出现权重叠加。
也就是一个简单的加法计算
- div ul li ------> 0,0,0,3
- .nav ul li ------> 0,0,1,2
- a:hover ------> 0,0,1,1
- .nav a ------> 0,0,1,1