1. 后代选择器和子元素选择器之间的区别
1.1 
后代选择器使用空格作为连接符号
子元素选择器使用>作为连接符号
1.2 
后代选择器会选中指定标签中,所有的特定后代标签,也就是会选中儿子/孙子/。。。只要是被放到指定标签中的特定标签都会被选中
子元素选择器只会选中指定标签中,所有的特定的直接标签,也就是只会选中特定的儿子标签

2. 后代选择器和子元素选择器之间的共同点
2.1
后代选择器和子元素选择器都可以使用标签名称/id名称/class名称来作为选择器
2.2 
后代选择器和子元素选择器都可以通过各自的连接符号一直延续下去
选择器1 选择器2 选择器3{}
选择器1>选择器2>选择器3{}
在企业开发中如何选择
如果想选中指定标签中的所有特定的标签,那么就使用后代选择器  
如果只想选中指定标签中所有特定儿子标签,那么就用特定儿子标签

########################################################################
***交集选择器***
作用
给所有选择器选中的标签中,相交的部分标签设置属性

格式
选择器1选择器2{
    属性:值;
}

注意点
1.选择器和选择器之间没有如何的连接符号
2.交集选择器可以使用标签名称也可以使用标签名称/id名称/class名称

############################################################
并集选择器
作用
给所有选择器选中的标签设置属性
格式
选择器1,选择器2{
    属性:值;
}

注意点
1. 并集选择器必须使用 ,来连接
2. 并集选择器可以使用标签名称也可以使用标签名称/id名称/class名称

###################################################################
兄弟选择器
1. 相邻兄弟选择器 CSS2
作用
给指定选择器后面紧跟的那个选择器选中的标签设置属性
格式
选择器1+选择器2{
    属性:值;    
}
既给选择器1后面的选择器2选中的标签设置设置属性
注意点
1. 相邻兄弟选择器必须通过+连接
2. 相邻兄弟选择器只能选中紧跟其后的那个标签
不能选中被隔开的标签

 

2. 通用兄弟选择器 CSS3
作用
给指定选择器后面所有选择器选中的所有标签设置设置属性

格式
选择器1~选择器2{
    属性:值;
}

注意点
1. 通用兄弟选择器必须用~连接
2. 通用兄弟选择器选中的是指定选择器后面某个选择器选中的所有标签,无论有没有被隔开都可以选中

###################################################################################################
序选择器
格式XX:XXXXXX{
    属性:值;
}
1.同级别的第几个
:first-child 选中同级别中的第一个标签
:last-child  选中同级别中的最后一个标签
:nth-child(n)  选中同级别中的第n个标签
:nth-last-child(n)  选中同级别中的倒数第n个标签
:only-child  选中父元素当中唯一的选择器
:nth-child(odd) 选中同级别的所有奇数
:nth-child(even) 选中同级别的所有偶数
:nth-child(xn+y)
xy自定义设置,n是一个计数器,从0开始递增
2.同类型的第几个
:first-of-type 选中同级别中同类型的第一个标签
:last-of-type  选中同级别中同类型的第一个标签
:nth-of-type(n) 选中同级别中同类型的第n个标签
:nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签
:only-of-type 选中父元素中唯一类型的某个标签
:nth-of-type(odd) 选中同类型中同级别的所有奇数
:nth-of-type(even) 选中同类型中同级别的所有偶数


##################################################################3
属性选择器


[attribute]
作用
根据指定的属性名称来找到对应的标签,然后设置属性

[attribute=value]
作用
找到有指定的属性,并且属性的取值等于value的标签
最最常见的应用场景,就是用于区分input属性
input[type=password]{}
<input type="text" name="" id="">
<input type="password" name="" id="">


1. 属性的取值是以什么开头的
[attribute|=value]   css2
[attribute^=value]  css3

2. 属性的取值是以什么结 尾的
[attribute$=value] css3

 

3. 属性的取值是否包含某个特定的值
[attribute~=value]  css2
[attribute*=value]   css3

############################################################
通配符标签
给当前界面上所有标签设置属性

格式
*{
    属性:值;
}

注意点
由于通配符选择器是设置界面上所有的标签的属性,所以在设置之前会遍历所有的标签,如果当前界面上的标签比较多,那么性能就会比较差,所以在企业开发中一般不会使用通配符选择器


#############################################################
CSS三大特性
1. CSS三大特性之继承性

作用
给父元素设置一些属性,子元素也可以使用,这个我们称之为继承性

注意点
1. 并不是所有的属性都可以继承
  只有以color/font/text/line开头的属性才可以继承
2. 在CSS继承中不仅仅是儿子可以继承,只要是后代都可以继承
3. CSS继承性中的特殊性
3.1 a标签的文字颜色和下划线是不能继承的
3.2 h标签的文字大小是不能继承的

应用场景
一般用与设置网页上的一些共性信息,;例如网页的文字颜色,文字,文字大小等内容

2. CSS三大特性之层叠性

作用
层叠性只有在多个选择器选中"同一个标签"
然后又设置了相同的属性,才会发生层叠性


3. CSS三大特性之优先级
作用
当多个选择器选中同一个标签,并且给同一个标签设置相同属性时,如何层叠就由优先级来确定

2. 优先级判断的三种方式
2.1 是否是直接选中(间接选中就是指继承) 
如果是间接选中,那么就是谁离目标标签比较近就听谁的
2.2 是否是相同选择器(直接选中)
如果都是直接选中,并且都是同类型的选择器,那么就是谁写在后面就听谁的
2.3 不同选择器(直接选中)
如果是直接选中,并且不是相同类型的选择器,
那么就会按照选择器的优先级来层叠 
id>类>通配符>继承>浏览器默认

优先级中的!important
作用
用于提升某个直接选中标签的选择器中的某个属性的优先级的,可以将被指定的属性的优先级提升为最高
注意点
1. !important只能用于直接选中,不能用于间接选中
2. 通配符选择器选中的标签也是直接选中的
3. !important只能提升被指定的属性的优先级,
其他的属性的优先级不会被提升
4. !important必须写在属性值的分号前面
5. !important前面的感叹号不能省略

A 优先级之权重问题
作用
当多个选择器混合在一起使用时,我们可以通过计算权重来判断谁的优先级最高
B 权重的计算原则
1 首先先计算选择器中有几个id,id多的选择器优先级越高 以此类推
2 如果id的个数一样再看类名个数
3 如果类名的个数一样,那么再看标签名称的个数
个数越多 优先级越高
4 如果以上全一样 那么就不会继续往下计算了,那么此时 谁写在下面听谁的
             既同级时 以后面的设置为准


注意点
 只有选择器是直接选中标签的才需要计算权重 否则一定会听直接选中的选择器的

#########################################################################
div和span标签
div标签
作用:一般用于配合css完成网页的基本布局

span标签:
作用:一般用于配合css修改网页中的一些局部信息
 

div和span的区别
1. div会单独占领一行,而span不会单独占领一行
2. div是一个容器级的标签,而span是一个文本级的标签
3. 容器级的标签和文本级的区别
容器级的标签中可以嵌套其他所有的标签
文本级的标签只能嵌套其他所有的标签
文本级的标签中只能嵌套文字/图片/超链接

【注意点】
需要嵌套时 一般都是嵌套在div中,或者按照组标签来嵌套

###########################################################
CSS元素的显示模式
在HTML中HTML将所有的标签分为两类,分别是容器级和文本级
在CSS中CSS也将所有的标签分为两类,分别是块级元素和行内元素

1. 什么是块级元素,什么是行内元素?
块级元素 会独占一行
容器元素+p
行内元素 不会独占一行
除了p的文本元素

2. 块级元素和行内元素的区别?
2.1 块级元素
独占一行
如果没有设置宽度,那么默认和父元素一样宽
如果设置了宽高,那么就按照设置的来显示

2.2 行内元素
不会独占一行
如果没有设置宽高,那么默认和内容一样宽
行内元素是不可以设置宽度和高度的

2.3行内块级元素
既能够不独占一行,又可以设置宽度和高度

如何转换CSS元素的显示模式
 既设置 display属性
取值
display: block            块级
display: inline            行内
display: inline-block  行内块级


######################################################################################
background属性

A  如何设置标签的背景颜色?
background-color属性

取值
具体单词
rgb
rgba
十六进制

B  background-image: url(); 属性

设置背景图片
注意点
1. 图片的地址必须放在url()中,图片的地址可以是本地的地址,
也可以是网络的地址
2. 如果图片的大小没有标签的大小大,那么会自动在水平和垂直方向平铺和填充
3. 如果网页上出现了图片,那么浏览器会再次发送请求获取图片

 

    背景属性
C  如何控制背景图片的平铺方式?
在CSS中有一个background-repeat属性,就是专门用于控制背景图片的平铺方式的


repeat        默认  在水平和垂直都需要平铺
no-repeat   在水平和垂直方向上都不需要平铺
repeat-x     只在水平方向上平铺
repeat-y     只在垂直方向上平铺

应用场景
可以通过背景图片的平铺来降低图片的大小,提升网页的访问速度


注意点
同一个标签可以设置背景颜色和背景图片,如果颜色和图片可以同时存在,那么图片会覆盖颜色


D  背景定位
background-position: 水平方向 垂直方向;
作用用于控制背景图片的位置

取值
1. 具体的方位名词
水平方向:left center right
垂直方向:top center bottom
2. 具体的像素
写像素时一定要写单位(px)
具体的像素是可以接受负数的

E  关联方式
默认情况下背景图片会随着滚动条的滚动而滚动
如果不想让背景图片随着滚动条的滚动而滚动
那么我们就可以修改背景图片和滚动条的关联方式
格式
background-attachment: xxx;
取值
scroll  默认   会随着滚动条的滚动而滚动
fixed   不会随着滚动条的滚动而滚动

背景属性缩写的格式
background: 背景颜色 背景图片 平铺方式 关联方式 定位方式;

1. 背景图片和插入图片的区别
1.1 背景图片仅仅是一个装饰,不会占用位置
插入图片会占用位置
1.2 插入图片没有定位的功能
1.3 插入图片的语义比背景图片的语义要强,所以在企业开发中如果你的图片想被搜索引擎收录,那么推荐使用插入图片