高级选择器
1.兄弟选择器
2.同时满足
	div.bg{
      background-color: red;
    }
    p.bg{
      background-color: green;
    }
    spam.bg{
      background-color: blue;
    }
注:选择器中间没有空格,有明确标识的选择器写在后面
3.各种伪类的应用
3.1作为第几个子元素
选择器:nth-child(n){
 …
 }
 作为第n个子元素,切选择器能匹配到
        span:nth-child(1){
            background-color: red;
        }

 
 选择器:first-child/选择器:last-child
 作为第一个/最后一个子元素且选择器能匹配到的元素
 选择器:only-child
 作为唯一一个子元素且选择器能匹配到元素
4.内容相关
4.1 空标签
选择器:empty{}
 没有任何内容(空格都不行),且选择器能匹配到的元素
 
4.2 筛选子元素的选择器
选择器a:has(选择器b)
 匹配元素满足两个条件:
 (1)能被选择器匹配到
 (2)后代元素能被选择器b匹配到
5.属性相关
选择器[属性=属性值]
 匹配元素满足两个条件:
 (1)能被选择器匹配到
 (2)属性=属性值
 选择器[属性值]
 匹配元素满足两个条件
 (1)能被选择器匹配到
 (2)具有属性
        input[type="text"]{
            width: 200px;
            height: 50px;
        }
        input[checked]{
            width: 200px;
            height: 50px;
        }
弹性布局
display: flex 开启弹性布局区
 注:受影响的是子元素
 子元素都默认向左浮动,且完成了清除浮动
 开启弹性布局后,给父元素设置的属性
1.主轴排列方式
flex-direcrion:
 默认值: row 从左向右排列
 
 可选值:
 row-reverse 从右向左排列
 column 从上向下排列
 column-reverse 从下向上排列
2.主轴上子元素的分布方式
justify-content
 默认值: flex-start 主轴开始方向对齐
 
案例中从左向右排列,默认就是左对齐
 可选值:== flex-end 主轴结束方向对齐==
 
案例中从左向右排列,此值就是右对齐
 注:不会改变排列方向
 center 主轴居中
 
 案例中从左向右排列,此值就是右对齐
 space-between 主轴两端对齐
 
 注:如果子元素在父元素中左右不留空隙,就是两端对齐
 space-evenly 间距平均分布
 
 注:如果子元素在父元素中左右有空隙,每个间距都相等,就是间距平均分布。
 space-around 外边距平均分布
 
 注:如果子元素在父元素中左右有空隙,子元素到父元素边框的距离和子元素之间的距离不等。
3.在主轴(flex-direction)上确定后,与主轴垂直方向就是交叉轴
当从左向右或者从右向左排列时,主轴就是水平方向,则交叉轴就是竖直方向。
 当从左向右或者从上向下排列时,主轴就是竖直方向,则交叉轴就是水平方向。
 子元素在交叉轴上的对齐方式:
 注:想要这个属性看到效果,则父元素在交叉轴方向的长度要大于系元素。
 align-items:
 默认值: flex-start
 开始方向对齐(水平就是左对齐,竖直就是顶对齐)
 
 可选值:flex-end
 交叉轴结束方向对齐
 
 center 交叉轴居中
 


















