HTML9_CSS3背景 CSS选择器 动画

181 阅读4分钟

一. CSS3背景

  1. 第一张完整背景图的起始位置 background-origin

默认情况下,第一张完整背景图的起始位置是从元素的padding开始的

1.1 border-box 起始位置从border开始

1.2 padding-box 起始位置从padding开始 默认值

1.3 content-box 起始位置从content开始

2. 背景图剪裁 background-clip, 从给定的位置开始向外剪裁

2.1 border-box 从border位置开始剪裁

2.2 padding-box 从padding位置开始剪裁

2.3 content-box 从content位置开始剪裁

二.CSS3选择器

  • nth-child()选择器

    写法1

    语法: 选择器A:nth-child(大于0的数) {}

ul>li:nth-child(2) {
    background-color: red;
}

找到选择器A表示的元素的父元素里第number个子元素, 且子元素的类型要符合选择器A

写法2

语法: 选择器A:nth-child(2n+1) {}

ul>li:nth-child(2n+1) {
    background-color: red;
}

找到选择器A表示的元素的父元素里序号为奇数的子元素, 且子元素的类型要符合选择器A

写法3

语法: 选择器A:nth-child(2n) {}

ul>li:nth-child(2n) {
    background-color: red;
}

找到选择器A表示的元素的父元素里序号为偶数的子元素, 且子元素的类型要符合选择器A

写法4

语法:选择器A:nth-child(n+number) {}

ul>li:nth-child(n+5) {
    background-color: red;
}

找到选择器A表示的元素的父元素里序号为number及之后的所有子元素, 且子元素的类型要符合选择器A

写法5

语法: 选择器A:nth-child(-n+number) {}

ul>li:nth-child(-n+4) {
    background-color: red;
}

找到选择器A表示的元素的父元素里序号为number及之前的所有子元素, 且子元素的类型要符合选择器A

  • nth-of-type()选择器

nth-of-type和nth-child两者的区别是:

nth-child 先从所有的子元素里找到正确的序号, 然后再判断类型是否匹配

nth-of-type 先找到所有同类型的子元素, 然后再从这些子元素里找到正确的序号

三.过渡动画

过渡动画 transition
  • 要做动画的css样式 (transition-property) 默认值是all

  • 动画的运动时间 (transition-duration) 单位是s

  • 过渡动画的运动速率 (transition-timing-function)

    • ease 默认值 开始和结束慢, 中间快
    • ease-in 开始慢, 之后加快
    • ease-out 开始快, 之后变慢
    • ease-in-out 开始和结束慢
    • linear 匀速
  • 过渡动画的延迟时间 transition-delay 单位是s

  • 要执行动画的css样式的初始值和结束值

过渡动画的触发时机

  • :hover伪类
  • :focus伪类
  • :checked伪类
  • 媒介查询
  • JS

注意:

不是所有的css样式都可以做过渡动画

绝大部分 样式, 变化的过程是线性的, 如px值单位的样式, 颜色, 位置, 距离等. 都可以触发过渡动画

样式变化的过程不是线性的, 如display:none/block, text-align:center/left/right, 不可触发过渡动画

但是有例外情况, 部分与文字有关的样式, 即使变化为线性也无法触发过渡动画

四.关键帧动画

过渡动画和关键帧动画的区别

  • 过渡动画只能让所有的样式同时做动画, 如果想要样式依次做动画, 请选择使用关键帧
  • 过渡动画的触发需要触发时机, 关键帧动画触发不需要触发时机

关键帧动画 animation

  • animation-name 需要执行的关键帧的名字, 该名字需要自定义, 配合@keyframes使用

  • animation-duration 动画的执行时间

  • animation-iteration-count 动画的执行次数, infinite无限次数

  • animation-delay 动画的延迟时间

  • animation-direction 动画的运动方向

    • normal 默认值
    • reverse 反向
    • alternate 奇数次正向, 偶数次反向
    • alternate-reverse 奇数次反向, 偶数次正向
  • animation-play-state 动画的运动状态

    • running 运动
    • paused 停止
  • animation-timing-function 动画的运动速率

    • ease 默认值 开始和结束慢, 中间快
    • ease-in 开始慢, 之后加快
    • ease-out 开始快, 之后变慢
    • ease-in-out 开始和结束慢
    • linear 匀速

五. 第三方动画 animate.css

css是一个使用方便,兼容绝大部分浏览器的动画库,可以在web项目中使用。用于强调、主页、滑动条和注意力引导提示

使用步骤:

  • 下载

    可以通过npm或者yarn下载

截屏2021-03-05 下午9.08.25.png

或者通过直接引入在线的css文件

截屏2021-03-05 下午9.09.53.png

  • 基本使用

给想要执行动画的元素添加animate__animated 类,同时添加任何想要执行的动画名称(不要忘记animate__前缀!)

<h1 class="animate__animated animate__bounce">An animated element</h1>
  • 进阶使用

尽管animate.css库提供了一些辅助类(如animated类)来让我们快速的实现动画效果,但如果插件提供的class类无法满足我们的需求(如: 修改动画执行时间, 延迟时间等), 我们可以直接使用提供的动画关键帧。这提供了一种灵活的方式,可以在你当前的项目中使用Animate.css,而不必重构你的HTML代码。

截屏2021-03-05 下午9.14.55.png