css笔记

lijiao 2023-05-10整理

样式表的优先级

优先级规则:行内样式>内部样式=外部样式

  1. 内部样式、外部样式,这两者的优先级相同,且:后面的会覆盖前面的(简记:“后来者居上”)。
  2. 同一个样式表中,优先级也和编写顺序有关,且:后面的会覆盖前面的(简记:“后来者居上”)。
分类 优点 缺点 使用频率 作用范围
行内样式 优先级最高 1.结构与样式未分离 2.代码结构混乱 3.样式不能复用 很低 当前标签
内部样式 1.样式可复用 2.代码结构清晰 1.结构与样式未彻底分离 2.样式不能多页面复用 一般 当前页面
外部样式 1.样式多页面可复用 2.代码结构清晰 3.可触发浏览器的缓存机制 4.结构与样式彻底分离 需要引入才能使用 最高 多个页面

类选择器

作用
根据元素的class值,来选中某些元素。

class翻译过来有:种类、类别的含义,所以class值,又称:类名。

语法
.类名{ 属性名:属性值; }

注意点

id选择器

作用
根据元素的id属性值,来精准的选中某个元素。
语法
#id值{ 属性名:属性值; }

注意点

基本选择器总结

基本选择器 特点 用法
通配选择器 选中所有标签,一般用于清除样式。 *{color:red}
元素选择器 选中所有同种标签,但是不能差异化选择 h1{color:green}
类选择器 选中所有特定类名(class值)的元素--使用频率很高 .say{color:gray}
id选择器 选中特定id值的那个元素(唯一的)。 #earthy{color:orange}

交集选择器

作用
选中同时符合多个条件的元素

交集有并且的含义(通俗理解:即......又......的意思),例如:年轻且长的帅。

语法
选择器1选择器2选择器3...选择器n{}
注意

并集选择器

作用
选中多个选择器对应的元素,又称:分组选择器。

所谓并集就是或者的含义(通俗理解:要么......要么......的意思),例如:给我转10万块钱或者我报警。

语法 选择器1,选择器2,选择器3,...选择器n{}

多个选择器通过,连接,此处,的含义就是:或。

注意

元素关系

父元素
直接包裹某个元素的元素,就是该元素的父元素。
子元素
被父元素直接包含的元素(简记:儿子元素)。
祖先元素
父亲的父亲......,一直往外找,都是祖先。
后代元素
儿子的儿子......,一直往里找,都是后代。
兄弟元素
具有相同父元素的元素,互为兄弟元素。

后代选择器

作用
选中指定元素中,符合要求的后代元素。
语法
选择器1 选择器2 选择器3 ......选择器n{} (先写祖先,再写后代)

选择器之间,用空格隔开,空格可以理解为:"xxx中的",其实就是后代的意思。
选择器1234....n,可以是我们之前学的任何一种选择器。

注意

子代选择器

作用
选中指定元素中,符合要求的子元素(儿子元素)。(先写父再写子)

子代选择器又称:子元素选择器、子选择器。

语法 选择器1>选择器2>选择器3>......选择器n{}

选择器之间,用>隔开,>可以理解为:“xxx的子代”,其实就是儿子的意思。 选择器1234....n,可以是我们之前学的任何一种选择器。
注意

兄弟选择器

相邻兄弟选择器

作用
选中指定元素后,符合条件的相邻兄弟元素。

所谓相邻,就是紧挨着他的下一个。

语法
选择器1+选择器2{}

通用兄弟选择器

作用
选中指定元素后,符合条件的所有兄弟元素。
语法
选择器1~选择器2{}
注意
两种兄弟选择器,选择的是下面的兄弟。

属性选择器

作用
选中属性值符合一定要求的元素。
语法

/* 第一种写法:选中具有title属性的元素 */
[title]{
    color:red;
}
/* 第二种写法:选中具有title属性,且属性值为abc的元素 */
[title="abc"]{
    color:green;
}
/* 第三种写法:选中具有title属性,且属性值以字母a开头的元素 */
[title^="a"]{
    color:blue;
}
/* 第四种写法:选中具有title属性,且属性值以字母c结尾的元素 */
[title$="c"]{
    color:gray;
}
/* 第五种写法:选中具有title属性,且属性值包含字母b的元素 */
[title*="b"]{
    color:gray;
}

伪类选择器

作用
选中特殊状态的元素。

如何理解"伪"?--虚假的,不是真的。 如何理解“伪类”?--像类(class),但不是类,是元素的一种特殊状态。

常用的伪类选择器

关于n的值

了解即可的伪类选择器

否定伪类

:not(选择器) 排除满足括号中条件的元素。

UI伪类

目标伪类(了解)

:target 选中锚点指向的元素。

语言伪类(了解)

:lang() 根据指定的语言选择元素(本质是看lang属性的值)。

伪元素选择器

作用
选中元素中的一些特殊位置。
常用伪元素

选择器的优先级

通过不同的选择器,选中相同的元素,并且为相同的样式名设置不同的值时,就发生了样式的冲突。到底应用哪个样式,此时就需要看优先级了。

行内样式>ID选择器>类选择器>元素选择器>通配选择器。

权重

计算方式
每个选择器,都可计算出一组权重,格式为:(a,b,c)

a:ID选择器的个数
b:类、伪类、属性选择器的个数
c:元素、伪元素选择器的个数

比较规则
按照从左到右的顺序,依次比较大小,当前位胜出后,后面的不再对比,例如:

特殊规则:

CSS三大特性

层叠性
概念:如果发生了样式冲突,那就是根据一定的规则(选择器优先),进行样式的层叠(覆盖)。

什么是样式冲突?---元素的同一个样式名,被设置了不同的值,这就是冲突。

继承性
概念:元素会自动拥有其父元素,或其祖先元素上所设置的某些样式。
规则:优先继承离得近的。
常见的可继承属性:

text-??、font-??、line-??、color......

备注:参考MDN网站,可查询属性是否可被继承。

优先级
简单聊:!important > 行内样式 > ID选择器 > 类选择器 > 元素选择器 > * > 继承的样式。
详细聊:需要计算权重。

计算权重时需要注意:并集选择器的每一部分是分开计算的!

字体复合写法

属性名
font 可以把字体样式合并成一个属性。
编写规则