定位、transitions、动画、媒体查询

定位布局

-静态定位

默认定位方式。

position:static;

-相对定位

相对于标准流中的位置来移动

position:relative;

用top,right,bottom,left来控制

- 相对定位注意点

  • 相对定位是不脱离标准流的, 会继续在标准流中占用一份空间
  • 在相对定位中同一个方向上的定位属性只能使用一个
  • 由于相对定位是不脱离标准流的, 所以在相对定位中是区分块级元素/行内元素/行内块级元素
  • 由于相对定位是不脱离标准流的, 并且相对定位的元素会占用标准流中的位置, 所以当给相对定位 的元素设置margin/padding等属性的时会影响到标准流的布局

- 相对定位应用场景

  • 用于对元素进行微调
  • 配合后面学习的绝对定位来使用

 -绝对定位

position:absolute;

-固定定位

position:fixed;

脱离标准流的, 不会占用标准流中的空间;脱离标准流的, 不会占用标准流中的空间

-粘滞定位

 position: sticky;

元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

 -z-index

专门用于控制定位流元素的覆盖关系。默认为0,大的覆盖小的。

flex弹性布局

flex布局属性

容器属性

  • flex-flow
  • flex-direction
  • flex-wrap
  • justify-content
  • align-items
  • align-content

元素属性

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

flex弹性盒模型

display:flex;设置弹性容器

  1. 每个弹性容器都有两根轴:主轴和交叉轴,两轴之间成90度关系。注意:水平的不一定就是主轴。
  2. 每根轴都有起点和终点,这对于元素的对齐非常重要。
  3. 弹性容器中的所有子元素称为<弹性元素>,弹性元素永远沿主轴排列
  4. 弹性元素也可以通过display:flex设置为另一个弹性容器,形成嵌套关系。因此一个元素既可以是弹性容器也可以是弹性元素

主轴

flex布局大部分的属性都是作用于主轴的,在交叉轴上很多时候只能被动地变化。我们可以通过flex-direction改变主轴方向。

flex-direction属性

取值:row(默认) | row-reverse(横向排列·反向) | column(纵向) | column-reverse(纵向排列·反向)

弹性元素永远沿主轴排列,那么如果主轴排不下,通过设置flex-wrap属性可使得主轴上的元素不换行、换行、反向换行。

flex-wrap属性

取值:nowrap(默认) | wrap(自动换行) | wrap-reverse(自动换行·第二行在上)

flex-flow属性

flex-flow属性是flex-deriction与flex-wrap属性的简写集合,默认属性为row nowrap,即横向排列,且不换行,如果需要控制项目排列与换行,推荐使用此属性,而非单独写两个。

justify-content属性(横向排布)

取值:flex-start(默认) | flex-end(右对齐) | center(居中) | space-between(左右两端对齐) | space-around(项目间距离为左右两侧项目到容器间距的2倍) | space-evenly(项目之间间距与项目与容器间距相等)

justify-content: center; /* 水平居中 */

align-items: center; /* 垂直居中 */

align-items属性

取值:flex-start(紧贴容器顶部) | flex-end(紧贴容器底部) | center(在交叉轴中心位置排列) | baseline(项目以第一行文字的基线为参照进行排列) | stretch(默认)

align-content属性(纵向排布)

取值:flex-start | flex-end | center | space-between | space-around | space-evenly | stretch(默认);

order属性

取值:默认为,数值越小,项目排列越靠前

flex-grow属性

取值:默认0,用于决定项目在有剩余空间的情况下是否放大,默认不放大;注意,即便设置了固定宽度,也不会放大。设置1会占满剩余空间,倍数占位。

flex-shrink属性

取值:默认1,用于决定项目在空间不足时是否缩小,默认项目都是1,即空间不足时大家一起等比缩小;注意,即便设置了固定宽度,也会缩小。但如果某个项目flex-shrink设置为0,则即便空间不够,自身也不缩小。

flex-basis属性

取值:默认auto,用于设置项目宽度,默认auto时,项目会保持默认宽度,或者以width为自身的宽度,但如果设置了flex-basis,权重会比width属性高,因此会覆盖widtn属性。

flex属性

取值:默认0 1 auto,flex属性是flex-grow,flex-shrink与flex-basis三个属性的简写,用于定义项目放大,缩小与宽度。

align-self属性

取值:auto(默认) | flex-start | flex-end | center | baseline | stretch,表示继承父容器的align-items属性。如果没父元素,则默认stretch。

用于让个别项目拥有与其它项目不同的对齐方式

CSS过渡-Transitions

-过渡三要素

​ 1.1必须要有属性发生变化​ 1.2必须告诉系统哪个属性需要执行过渡效果​ 1.3必须告诉系统过渡效果持续时长

-过渡触发

:hover | :active | :focus | @media | :click

-transition-property 规定应用过渡的 CSS 属性的名称

​none 没有属性会获得过渡效果。​ all 所有属性都将获得过渡效果。​ property 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔

-transition-duration 定义过渡效果花费的时间。默认是 0

​ linear 规定以相同速度开始至结束的过渡效果,ease 规定慢速开始。然后变快,然后慢速结束的过渡效果。ease-in 规定以慢速开始的过渡效果。ease-out 规定以慢速结束的过渡效果。​ ease-in-out 规定以慢速开始和结束的过渡效果。cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

-transition-delay 规定过渡效果何时开始。默认是 0

 time 指定秒或毫秒数之前要等待切换效果开始

​transition 是 transition-property, transition-duration,transition-timing-function,​ transition-delay的速写形式,分别表示过渡属性,持续时间,时间曲线,过渡延迟

Animation动画

过渡与动画之间的异同

不同点 过渡必须人为的触发才会执行动画 动画不需要人为的触发就可以执行动画

相同点 过渡和动画都是用来给元素添加动画的 过渡和动画都是系统新增的一些属性 过渡和动画都需要满足三要素才会有动画效果

animation-name 指定要绑定到选择器的关键帧的名称,告诉系统需要执行哪个动画

animation-timing-function 设置动画将如何完成一个周期,告诉系统动画执行的速度

linear 匀速 ease 低速->高速->低速 ease-in 低速开始 ease-out 低速结束 ease-in-out 低速开始和结束 cubic-bezier(n,n,n,n)设置速度,值为0-1

 animation-delay 设置动画在启动前的延迟间隔。

time 可选。定义动画开始前等待的时间,以秒或毫秒计。默认值为0

animation-iteration-count 定义动画的播放次数。告诉系统动画需要执行几次

n 一个数字,定义应该播放多少次动画​ infinite 无限次执行

animation-direction 指定是否应该轮流反向播放动画。

​ normal 默认的取值, 执行完一次之后回到起点继续执行下一次​ alternate 往返动画, 执行完一次之后往回执行下一次​ reverse 反向执行

animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

​ none: 不做任何改变​ forwards: 让元素结束状态保持动画最后一帧的样式​ backwards: 让元素等待状态的时候显示动画第一帧的样式​ both: 让元素等待状态显示动画第一帧的样式, 让元素结束状态保持动画最后一帧的样式

animation-play-state 告诉系统当前动画是否需要暂停

running: 执行动画​ paused: 暂停动画

动画模块连写格式

animation:动画名称(animation-name) 动画时长(animation-duration) 动画运动速度(animation-timing-function) 延迟时间(animation-delay) 执行次数(animation-iteration-count) 往返动画(animation-direction);

关键帧:​ @keyframes animiationName{​ keyframes-selector{​ css-style;​ }​ }

animate.css

Animate.css | A cross-browser library of CSS animations.

引入animate的cdn或本地animate.css文件

<link href="https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.min.css" rel="stylesheet">

 给指定元素加入class"animate__animated <动效名称>"

<div class="animate__animated animate__fadeInUpBig">你好 animate</div>

2D转换模块

transform 属性向元素应用从2D或3D转换。该属性允许我们对元素进行旋转、缩放、移动或者倾斜。

旋转 rotate 平移 translate 缩放 scale

​ transform-origin 形变中心点

perspective 定义3D元素距视图的距离

媒体查询

媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式。使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。

@media 媒体类型 and (媒体特性){你的样式}

与CSS属性不同的是,媒体特性是通过min/max来表示大于等于或小于做为逻辑判断,而不是使用小于(<)和大于(>)这样的符号来判断。

“max-width”是媒体特性中最常用的一个特性,其意思是指媒体类型小于或等于指定的宽度时,样式生效。

“min-width”与“max-width”相反,指的是媒体类型大于或等于指定宽度时,样式生效。

 Media Queries可以使用关键词"and"将多个媒体特性结合在一起

@media screen and (min-width:600px) and (max-width:900px){

        body {background-color:blue;}

}

对于屏幕设备同样可以使用“min/max”对应参数,如“min-device-width”或者“max-device-width”。

当使用媒体查询的逗号分隔列表时,如果列表中的任何媒体查询为true,样式表都会被运用。在逗号分隔列表中的每个媒体查询都被作为独立查询对待,运用到一个媒体查询上的任何操作符都不影响其它的。

@media (min-width: 700px),handheld and (orientation: landscape) { ... }

使用关键词“not”是用来排除某种制定的媒体类型,也就是用来排除符合表达式的设备。换句话说,not关键词表示对后面的表达式执行取反操作

only操作符表示仅在媒体查询匹配成功时应用指定样式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值