Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • HTML

    • HTML
    • HTML5
    • 表单标签
    • CSS
    • HTML+CSS网页
    • CSS3
      • 属性选择器
      • 结构伪类选择器
      • 伪类选择器
      • 否定伪类
      • 2D转换
        • 2D移动
        • 2D旋转
        • 2D缩放
        • 2D倾斜
        • 缩写
      • 动画
        • 动画序列
        • 动画常用属性
      • 3D转换
        • 3D移动
        • 透视 perspective
        • 3D旋转 rotate3d
        • 3D呈现 transform-style
      • 浏览器私有前缀
      • 背景线性渐变
      • css 函数
        • var
        • calc
        • blur
        • gradient
    • 移动布局
    • Bootstrap
  • JavaScript

  • Vue2

  • Vue3

  • Uni-APP

  • TypeScript

  • 前端
  • HTML
Iekr
2021-06-18
目录

CSS3

# CSS3

# 属性选择器

元素 [属性]{} 选择指定元素中拥有该属性的元素 如:button [disable]{};

属性选择器和伪类选择器与类选择器权重一致

<style>
      button {
        cursor: pointer;
      }

      button[disabled] {
        cursor: default;
      }
    </style>

<button>提交</button>
    <button>提交</button>
    <button disabled="disabled">提交</button>
    <button disabled="disabled">提交</button>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • E [att]; 选择具有 att 属性的 E 元素
  • E [att="val"]; 选择具有 att 属性并且值等于 val 的 E 元素
  • E [att^="val"] 选择具有 att 属性并且值以 val 开头的 E 元素
  • E [att$="val"] 选择具有 att 属性并且值以 val 结尾的 E 元素
  • E [att*="val"] 选择具有 att 属性并且值包含 val 的 E 元素

# 结构伪类选择器

选择该元素中 指定元素的第几个 如:FU E:nth-child (1){}

  • E:first-child 匹配父元素中第一个子元素 E 可以省略 E 元素表示 all 元素 如:span:first-child

  • E:last-child 匹配最后一个 E 元素

  • E:nth-child (n) 匹配第 n 个 E 元素

    • n 可以是数字
    • n 可以是关键字 如 even 偶数 odd 奇数
    • n 可以公式,从 0 开始计算 如:2n 偶数 从 0 2 4 6, n+5 从 5 6 7 8.-n+5 从 4 3 2 1
    • 第 0 个元素和超出元素的个数会被忽略, 元素从 1 开始
    • 如匹配指定元素且父类元素中第 n 孩子并不是元素则不会匹配选择到
  • nth-last-child ():从最后一个子元素开始往前计数

    • :nth-last-child (1),代表倒数第一个子元素
    • :nth-last-child (-n + 2),代表最后 2 个子元素
  • E:first-of-type 选择指定类型的第一个 如:span:first-of-type

  • E:last-of-type 选择指定类型的最后一个

  • E:nth-of-type (n) 与子类选择一致,不同点是:nth-of-type () 计数时只计算同种类型的元素

  • &:not (:last-child) 排除最后一个子类

  • :only-child,是父元素中唯一的子元素

  • :only-of-type,是父元素中唯一的这种类型的子元素

下面的伪类偶尔会使用:

  • :root,根元素,就是 HTML 元素
  • :empty 代表里面完全空白的元素

# 伪类选择器

  • ::before 在元素内部的前面插入内容
  • ::after 在元素内部的后面插入内容
  • 都必须拥有 content 属性
  • 会在内容的前或后,创建一个看不见的元素,但是属于行内元素
  • 伪元素和标签选择器一样,权重为 1

# 否定伪类

:not (x) 表示除 x 以外的元素

  • x 是一个简单选择器, 元素选择器、通用选择器、属性选择器、类选择器、id 选择器、伪类(除否定伪类)

# 2D 转换

# 2D 移动

使用 transform: 关键字, 不会影响到其他元素的位置,对行内标签没有效果,如果使用百分百单位是相对于自身元素的尺寸 (50% 是自身尺寸的一半).

  • translate (x,y); 在元素原来的位置移动相对应的 x y 坐标 如:transform:translate (x,y);
  • translateX(n);
  • translateY(n);
  • 让盒子重置居中方法:首先子绝父相,left:50%, 然回自身大小的一半,也就是 translate 中的 transform:translate (50%,0);

# 2D 旋转

transform:rotate (度数);

度数单位为 deg 如:rotate (45deg)

角度为正时顺时针,逆时为逆时针

transform-origin:x y ; 默认的旋转点为元素的中心点 (50%,50%) , 支持方位名词 top、bottom、left、right、center

image-20240311095412034

# 2D 缩放

transform:scale(x,y);

x,y 指的是原来宽度 / 高度倍数,默认为 1 倍;

如果宽度和高度变化的倍数一样可以简写为 x 如:transform:scale (2);

缩放不会影响其他盒子

同样拥有中心点

transform-origin:x y ; 默认的缩放点为元素的中心点 (50%,50%) , 支持方位名词 top、bottom、left、right、center

# 2D 倾斜

transform:skew(deg,deg);

一个值时,表示 x 轴上的倾斜,二个值时,表示 x 轴和 y 轴上的倾斜

旋转的原点受 transform-origin 的影响

image-20240311095519404

# 缩写

transform:translate() rotate() scale()

强调顺序关系,位移总是在最前

# 动画

使用 keyframes 定义动画

@keyframes 动画自定义名称 {
    /*开始状态*/
	0% {
		width:100px;
	}
    /*结束状态*/
	100% {
		width:200px;
	}
}

/*调用动画*/
div {
    width:200px;
    height:200px;
    
    animation-name:动画名称;
  
    animation-duration:持续时间;
        
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 动画序列

动画有多个过程从 0%-100%, 也可以使用 form,to 代替 0 和 100

我们可以定义不同百分百的过程的动画一个动画中有多个过渡动画

如:0% 一个 25% 一个 75% 100%

# 动画常用属性

  • @keyframes: 规定动画

  • animation-name: 动画名称,指定执行哪一个关键帧动画

  • animation-duration: 指定动画的持续时间

  • animation-timing-function: 动画的速度曲线 默认是 ease

    • linear 匀速
    • ease 默认
    • ease-in 动画由低速开始
    • ease-out 低速结束
    • ease-in-out 以低俗开始和结束
    • steps () 指定了时间函数中的间隔数量 (步长), 切蛋糕把整个动画切分为若干份
  • animation-delay: 规定动画何时开始 默认是 0 单位为 s /ms

  • animation-iteration-count: 动画播放次数 默认为 1,infinite 为无限循环

  • animation-direction: 规定动画是否在下一周期逆向播放 默认为 normal, alternate 是逆播放

  • animation-play-state: 规定动画播放或者暂停 默认为 running 暂停为 pause

  • animation-fill-mode: 规定动画结束后状态 保持为 forwards 回到起始位置为 backwards

    • none:回到没有执行动画的位置
    • forwards:动画最后一帧的位置
    • backwards:动画第一帧的位置
  • animation: 动画的简写

    • animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反向 动画起始或结束状态
    • 可以使用多个动画,用逗号隔开.

# 3D 转换

# 3D 移动

  • transform:translateX (x); 往 x 轴移动
  • translateY 往 y 移动
  • translateZ 往 Z 移动
  • transform:translate3d (x,y,z) 指定移动 xyz

# 透视 perspective

写在被 3D 化元素的父盒子里

perspective:500px;

必须要有透视才能看到 z 轴变化的效果

# 3D 旋转 rotate3d

  • transform:rotateX (45deg); 沿 x 轴正向旋转 45 度
  • transform:rotateY (45deg); 沿 y 轴正向旋转 45 度
  • transform:rotateZ (45deg); 沿 z 轴正向旋转 45 度
  • transform:rotate3d (x,y,z,45deg); 沿自定义轴 旋转 45 度 1 为标记此轴旋转 默认为 0

# 3D 呈现 transform-style

控制子元素是否开启三维立体环境,如果不开启 父盒子旋转之后 子盒子不会保留 3d 效果

transform:flat 默认子元素不开启 3d 立体空间

transform-style:preserve-3d; 子元素开启立体空间

写在父级元素上,但影响是子元素

# 浏览器私有前缀

-moz-: firefox 私有前缀

-ms-: ie 浏览器

-webkit-: Safari 和 chrome

-o- : Opera

如: -ms-border:1px solid #ccc;

# 背景线性渐变

linear-gradient 创建一个表示两种或多种颜色线性渐变的图片;

background:linear-gradient (起始方向,颜色 1, 颜色 2,....);

  • 起始方向为方位名词或度数 默认值为 top
  • 可以指定左上角 用空格隔开 如: top left, 颜色 1, 颜色 2
  • 要加上浏览器的私有前缀 如:background:-webkit-linear-gradient (left,red,blue);

image-20240311103110027

# css 函数

CSS 函数通常可以帮助我们更加灵活的来编写样式的值;

  • var: 使用 CSS 定义的变量;
  • calc: 计算 CSS 值,通常用于计算元素的大小或位置;
  • blur: 毛玻璃 (高斯模糊) 效果;
  • gradient:颜色渐变函数;

# var

CSS 中可以自定义属性,属性名需要以两个减号(--)开始;属性值则可以是任何有效的 CSS 值

image-20240311102647712

我们可以通过 var 函数来使用

image-20240311102656764

规则集定义的选择器,是自定义属性的可见作用域 (只在选择器内部有效),所以推荐将自定义属性定义在 html 中,也可以使用 :root 选择器;

# calc

calc () 函数允许在声明 CSS 属性值时执行一些计算。计算支持加减乘除的运算;+ 和 - 运算符的两边必须要有空白字

image-20240311102736926

# blur

blur () 函数将高斯模糊应用于输出图片或者元素;

  • blur(radius)
  • radius, 模糊的半径,用于定义高斯函数的偏差值,偏差值越大,图片越模糊;

通常会和两个属性一起使用:

  • filter: 将模糊或颜色偏移等图形效果应用于元素;
  • backdrop-filter: 为元素后面的区域添加模糊或者其他效果;

# gradient

<gradient> 是一种 < image>CSS 数据类型的子类型,用于表现两种或多种颜色的过渡转变。

  • CSS 的 <image> 数据类型描述的是 2D 图形;
  • 比如 background-image、list-style-image、border-image、content 等;
  • <image> 常见的方式是通过 url 来引入一个图片资源;
  • 它也可以通过 CSS 的 <gradient> 函数来设置颜色的渐变;

<gradient> 常见的函数实现有下面几种:

  • linear-gradient ():创建一个表示两种或多种颜色线性渐变的图片;
  • radial-gradient ():创建了一个图像,该图像是由从原点发出的两种或者多种颜色之间的逐步过渡组成;
  • repeating-linear-gradient ():创建一个由重复线性渐变组成的 < image>;
  • repeating-radial-gradient ():创建一个重复的原点触发渐变组成的 < image>;
编辑 (opens new window)
上次更新: 2025/01/01, 10:09:39
HTML+CSS网页
移动布局

← HTML+CSS网页 移动布局→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式