Day07

  1.z-index

     z-index 就是 z 轴的顺序,z-index 可以设置字符值,如:auto,多数情况设置整数值,可以为负值。z-index 的最大值是 21,4748,3647 (21 亿多)。跨度尽量 10 以上

 (1) 层叠顺序取值

     z-index 层叠顺序

    直接设置没有单位的整数,可以为负值,值越大层级越高


一、定位
1. position 属性
用于定位,指定的某一个元素在文档当中定位的方式
Top,right,bottom,left四个方向属性决定了元素在四个方向上的距离,可以负值
在开发当中多用于px进行位置的调整,在移动端rem比较多
常用的取值
Relative   相对定位
Absolute  绝对定位
Fixed  固定定位
2.相对定位

   相对定位 position: relative 不脱离文档流。

   可以使用 top,right,bottom 和 left 做偏移。

   元素相对的位置是自己本来的位置,移动不改变页面布局。

   相对定位属性不会影响周围的布局,但会出现新的层叠顺序。

   当四个方向值发生重合时,以 top 和 left 为优先

3.绝对定位

     absolute 绝对定位,元素将脱离文档流,其他元素不为该元素预留空间。
 它的移动参照为祖先元素的偏移,来确定元素位置。元素会逐层向上寻找自己的参照元素,当找到的最近一层祖先元素具有 position 属性时,该元素就会以这个祖先元素的原点为参照点。

  可使用 top,right,bottom 和 left 做偏移。

   当四个方向值发生重合时,以“上 top”和“左 left”为优先。

  绝对定位的元素可以设置外边距,且不会与其他边距合并。

   应用场景背景图中的文字和按钮,轮播图中的控制符


4.固定定位

fixed 固定定位是元素,决定它的“包含块”是 html,唯一可以限定固定定为元素的就是 html 跟元素

   position: fixed;`它到父级始终是 html

    直接在窗口的某个位置固定

   可使用 top,right,bottom 和 left 做偏移。

(1)固定在右边的导航栏(固定的回到导航栏)

固定定位,元素在父元素中居中

二、 css3 高级选择器

1.属性选择器

    属性选择器可以使用`[]`将元素的属性名称放入其中,从而通过查找具有该属性的元素来设置其样式。

      元素的属性包括:

元素的属性包括:如`id、class、style、title、src、href`等    自定义属性data `

 (1)简单属性选择器

    具有某个属性的元素,如 id、class :  [属性名]{样式声明} 

    特指某个元素具有某个属性,如 p[class]:元素名[属性名]{样式声明} 

   具备多个属性的元素,如 [id][class] : [属性名1][属性名2]{样式声明} 

   特指某元素具备多个属性: 元素名[属性名1][属性名2]{样式声明 )

 (2)筛选属性选择器

   元素的属性名的值 如 id=mydiv : [属性名=值]{样式声明 )

   元素的属性名以什么值开头:[属性名^=开头的字段]{样式声明}

   元素的属性名以什么值结尾:[属性名$=结尾的字段]{样式声明}

   元素的属性名包括某字段的值:[属性名*=包含的字段]{样式声明}

   元素的属性名包括某些独立的字段:[属性名~=包含的字段]{样式声明}

2.结构性伪类选择器

- 匹配父元素的第一个孩子 : 父元素>:first-child {样式声明}

- 匹配父元素的最后一个孩子 :父元素>:last-child {样式声明}

- 匹配父元素的第 n 个孩子: 父元素>:nth-child(n) {样式声明}

- 匹配内部没有任何内容(包含文本)的标签 :父元素 >:empty{ 样式声明}

- 匹配父元素的唯一子元素:父元素 >:only-child{样式声明}

- 使用 not()参数为选择器,否定该括号内选择器的其他所有选择器,类似于取反:父元素 >:not(不想要的选择器){样式声明}


【注意】 Div:nth-child(2)  与 div>:nth-child(2)   有区别。第一个是指定第二个子元素是 div,第二个指的是div下的第二个孩子


三、弹性布局

弹性布局是 css3 主推的一个布局,传统布局是基于文档流和盒子模型的,主要以浮动布局,定位布局等。

给父元素加 display:flex;使子元素横向排列,不用每个子元素浮动了

父元素不需要清除浮动了,高度依然被子元素撑开

1.弹性布局的基本概念

(1)容器和项目

     使用 flex 布局的元素(父元素),称为"容器"
 它的所有“子元素”自动成为容器成员,称为 "项目"
 它们各自有控制布局的属性,必须是容器包裹着项目

(2)主轴

主轴就是项目的排列方向,主轴会出现四个方向:

- x 轴:起点在左侧

- x 轴:起点在右侧

- y 轴:起点在顶端

- y 轴:起点在底端

(3)交叉轴

交叉轴就是在主轴的垂直方向,项目可在交叉轴上移动

2.将容器指定为 flex 布局

- 任何一个容器都可以指定为 Flex 布局:

- 行内元素也可以使用 Flex 布局:

- 注意,设为 Flex 布局以后,子元素的 float、clear 等属性将失效。

3.容器的属性

 (1)主轴的方向

`flex-direction` 代表主轴的方向,即项目的排列方向

- row 左向右

- row-reverse 右向左

- column 上向下

- column-reverse 下向上


(2)项目换行(自适应)

默认情况下,项目都排在一条线上。`flex-wrap`属性定义如果一条轴线排不下,如何换行的模式。

- nowrap 默认不换行

wrap 换行

wrap-reverse 反向换行

(3)主轴和换行的简写方式

`flex-flow`属性是`flex-direction`属性和`flex-wrap`属性的简写形式,默认值为`row nowrap`横向排列不换行。

(4)主轴上的对齐方式

`justify-content`属性定义了项目在主轴上的对齐方式。是默认起点对齐、终点对齐还是居中对齐等。

 前提是,如果项目会换行,则下行按照下一行的数量对齐,间隔与上一行可能不同。不换行元素会在容器缩小是缩小,不会出现对齐效果。

- flex-start 默认起点对齐

- flex-end 终点对齐

- center 居中对齐,一起居中

- space-between 两端对齐,项目之间的间隔都相等,左右贴边

- space-around 每个项目两侧的间隔相等,项目之间的间隔比项目与边框的间隔大一倍


(5)交叉轴对齐方式

align-items 属性定义项目在交叉轴上如何对齐,"前提是"前提是项目换行,容器的垂直轴方向是有独立高度或者宽度的。注意:多行项目会有行间距离

flex-start 交叉轴的起点对齐

- flex-end 交叉轴的终点对齐

- center 交叉轴的中点对齐

- baseline 项目的第一行文字的基线对齐,需要给项目设置单独的高度和内上边距和行高可以看出来

- stretch 默认值,如果项目未设置高度或设为 auto,将占满整个容器的高度


(6)多轴线对齐方式

 `align-content`属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

 flex-start 与交叉轴的起点对齐。

- flex-end 与交叉轴的终点对齐。

- center 与交叉轴的中点对齐。

- space-between 第一行和最后一行贴开始和结束,其他均分中间位置

- space-around 每行间距两侧或上下间距相等,比边框间距大一倍

- stretch 默认值


 

上一篇:Redis每小时6000次请求改为每小时600000请求


下一篇:day07_面向对象入门丶封装丶构造方法