CSS3新特性

news2024/11/24 2:39:51

CSS3新特性


1.1、字体图标

何为字体图标?

  • 字体图标展示的是图标,本质是字体。用于处理简单的、颜色单一的图片

字体图标的优点:

  • 灵活性:灵活地修改样式,例如:尺寸、颜色等
  • 轻量级:体积小、渲染快、降低服务器请求次数
  • 兼容性:几乎兼容所有主流浏览器
  • 使用方便:
    • 下载字体包
    • 使用字体图标

Iconfont

下载字体包步骤:登录(新浪微博/手机号) → 选择图标库 → 选择图标,加入购物车 → 购物车 → 添加至项目 → 下载至本地

使用字体图标有以下两种方式:

  • Unicode编码
  • 类名

使用字体图标 - Unicode编码(方式一):

将选好的字体包下载到本地,并引入样式表:iconfont.css

<!-- 1.引入字体图标样式表 -->
<link rel="stylesheet" href="./iconfont/iconfont.css">

复制粘贴图标对应的Unicode编码

<i class="iconfont">&#xe721;</i>

设置文字字体相关属性

.iconfont {
    font-size: 26px;
    color: gray;
}

使用字体图标 – 类名(方式二):

引入字体图标样式表

调用图标对应的类名,必须调用2个类名

  • iconfont类:基本样式,包含字体的使用等
  • icon-xxx:图标对应的类名
<i class="iconfont icon-upload"></i>
<i class="iconfont icon-gouwuche"></i>

1.2、平面转换

何为平面转换?

  • 平面转换是其改变盒子在平面内的形态(位移、旋转、缩放、倾斜)
  • 2D转换

位移

具体语法:

  • transform:translate(水平移动距离, 垂直移动距离)

取值(正负均可)

  • 像素单位数值
  • 百分比(参照物为盒子自身尺寸

在这里插入图片描述

注:X轴正向为右,Y轴正向为下,位移可配合过渡实现,效果可能会较好

translate()如果只给出一个值,则表示x轴方向移动距离

单独设置某个方向的移动距离:translateX() & translateY()

使用translate快速实现绝对定位的元素居中效果

实现方法:

.son {
    position: absolute;
    left: 50%;
    top: 50%;

    width: 200px;
    height: 100px;

    /* 设置固定值不够灵活,如果盒子尺寸变了,margin-left/right的值也要手动去改变 */
    /* margin-left: -100px;
    margin-top: -50px; */

    /* 位移:百分比参考盒子自身尺寸计算结果 */
    /* 较为灵活 盒子尺寸变了,无需去手动改变尺寸 */
    transform: translate(-50%,-50%);

    background-color: pink;
}

原理:位移取值为百分比数值,参照盒子自身尺寸计算移动距离

旋转

具体语法:

transform:rotate(角度)

注:角度单位是deg,旋转需配合过渡实现,否则效果可能出不来

取值正负均可,若取值为正,则顺时针旋转。取值为负,则逆时针旋转

转换原点

使用transform-origin属性可改变转换原点

具体语法:

  • 默认圆点是盒子中心点
  • transform-origin:原点水平位置 原点垂直位置;

取值

  • 方位名词(left、top、right、bottom、center)
  • 像素单位数值
  • 百分比(参照盒子自身尺寸计算)

注:改变转换原点的css属性在元素本身上写,不要在hover上写

多重转换
transform: translate(300px) rotate(360deg);

多重转换原理

  • 旋转会改变网页元素的坐标轴向
  • 先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果

缩放

具体语法:

transform:scale(x轴缩放倍数, y轴缩放倍数)

一般情况下, 只为scale设置一个值, 表示x轴和y轴等比例缩放

  • transform: scale(缩放倍数);
  • scale值大于1表示放大, scale值小于1表示缩小
/* 本身的尺寸,不放大也不缩小 */
transform: scale(1);
/* 小于1 缩小 */
transform: scale(0.8);
/* 大于1 放大 */
transform: scale(1.5);

倾斜

具体语法:

transform: skew(角度)

正数向左倾斜,负数则向右倾斜

transform: skew(50deg);

1.3、渐变

何为渐变?

  • 渐变是多个颜色逐渐变化的视觉效果,常用于设置盒子的背景

具体语法:

/* 半透明渐变:透明--->rgba() */
background-image: linear-gradient(0deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);

/* 渐变的方向(或角度) 颜色值1,颜色值2,颜色值3 */
background-image: linear-gradient(transparent, rgba(0, 0, 0, .6));

渐变

1.4、空间转换

何为空间转换?

空间:是从坐标轴角度定义的。 x 、y 和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同

空间转换也叫3D转换

在这里插入图片描述

属性:transform

具体语法:

  • transform:translate3d(x, y, z);
  • transform:translateX(值);
  • transform:translateY(值);
  • transform:translateZ(值);

取值(正负均可)

  • 像素单位数值
  • 百分比

透视

生活中,同一个物体,观察距离不同,视觉上有什么区别?

近大远小(近实远虚)、近清楚远模糊

默认情况下,为什么无法观察到Z轴位移效果?

因为Z轴是视线方向,移动效果应该是距离的远或近, 电脑屏幕是平面,默认无法观察远近效果

使用perspective属性实现透视效果

perspective: 800px;

属性(添加给父级)

  • perspective:值;
  • 取值:像素单位数值, 数值一般在800 – 1200

主要作用

  • 空间转换时,为元素添加近大远小(近实远虚)、近实远虚的视觉效果

立体呈现

使用perspective透视属性能否呈现立体图形?

不能,perspective只增加近大远小、近实远虚的视觉效果

呈现立体图形步骤:

  • 给盒子父元素添加transform-style:preserve-3d;使子元素处于真正的3d空间
  • 按需求设置子盒子的位置(位移或旋转)
transform-style: preserve-3d;

1.5、动画

何为动画?

  • 动画的本质是快速切换大量图片时在人脑中形成的具有连续性的画面
  • 构成动画的最小单元:帧或动画帧

过渡可以实现2个状态间的变化过程

动画效果:实现多个状态间的变化过程,动画过程是可控(重复播放、最终画面、是否暂停)

使用步骤:

定义动画

/* 定义动画 方式一 */
@keyframes changeBoxWidth {
    from {
        width: 200px;
    }

    to {
        width: 800px;
    }
}

/* 定义动画 方式二 */
@keyframes changeBoxSize {
    0% {
        width: 200px;
    }

    50% {
        width: 600px;
        height: 300px;
    }

    100% {
        width: 900px;
        height: 400px;
    }
}

使用动画

复合属性写法:

/* 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态 */
/* infinite 无限循环 */
/* alternate 动画来回执行 */
animation: change 1s steps(3) 2s infinite alternate;

/* 执行完毕时状态 注:添加此属性,需要把无限循环和动画方向去除 否则效果可能出不来 */
/* 默认值:动画停留在最初的状态 */
/* 默认值:动画停留在结束的状态 forwards */
animation: change 1s steps(3) forwards;

注意:

  • 动画名称和动画时长必须赋值
  • 取值不分先后顺序
  • 如果有2个时间值,第一个时间表示动画时长,第二个时间表示延迟时间

拆分写法:

属性作用取值
animation-name动画名称
animation-duration动画时长
animation-delay延迟时间
animation-timing-function动画执行完毕时状态forwards:最后一帧状态 backwards:第一帧状态
animation-timing-function速度曲线steps(数字):逐帧动画
animation-iteration-count重复次数infinite为无限循环
animation-direction动画执行方向alternate为反向
animation-play-state暂停动画paused为暂停,通常配合:hover使用

逐帧动画

逐帧动画:帧动画。开发中,一般配合精灵图实现动画效果

animation-timing-function: steps(N); 将动画过程等分成N份

多组动画

可以给元素添加多个动画

animation: moveBox 1s steps(12) infinite, run 5s infinite;

小提示:如果动画的开始状态和元素的默认样式是相同的,可以省略开始状态的代码

@keyframes move {
    to / 100% {
        transform: translateX(-1600px);
    }
}

1.6、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/374126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java并发编程(1)—— 操作系统、Linux、Java中进程与线程的区别

一、操作系统中什么是线程和进程 线程和进程都是操作系统中定义的结构&#xff0c;进程是系统中一个独立的活动程序&#xff0c;比如像QQ、网易云音乐&#xff0c;进程是操作系统进行资源分配的基本单位&#xff0c;一个进程中的所有线程共享进程内的资源&#xff0c;而线程则…

【Python学习笔记】第十八节 Python 内置函数

Python 内置函数内置函数就是Python给你提供的, 拿来直接用的函数&#xff0c;比如print&#xff0c;input等Python 内置函数一览表内置函数abs()divmod()input()open()staticmethod()all()enumerate()int()ord()str()any()eval()isinstance()pow()sum()basestring()execfile()…

ARMv8 同步和信号量(读写一致性问题):Load-Exclusive/Store-Exclusive指令详解

目录 一&#xff0c;Local Monitor 与 Global Monitor 1&#xff0c;Local Monitor 2&#xff0c;Global Monitor 二&#xff0c;Exclusive 指令的简单使用 三&#xff0c;Exclusive 示例程序 1&#xff0c;原子自加1程序 2&#xff0c;原子锁程序 四&#xff0c; 多处理…

算法设计与智能计算 || 专题一: 算法基础

专题一: 算法基础 文章目录专题一: 算法基础1. 算法的定义及特点1.1 算法的基本特征1.2 算法的基本要素1.3 算法的评定2 算法常见执行方法2.1 判断语句2.2 循环语句2.3 综合运用3. 计算复杂度4. 代码的重用5. 类函数的定义与使用5.1 定义类5.2 调用类函数1. 算法的定义及特点 …

_hand-2

实现一个迷你版的vue 入口 // js/vue.js class Vue {constructor (options) {// 1. 通过属性保存选项的数据this.$options options || {}this.$data options.data || {}this.$el typeof options.el string ? document.querySelector(options.el) : options.el// 2. 把da…

php mysql高校田径运动会成绩管理系统

第一章 引言 1 1.1 选题背景 1 1.2 编写目的 2 1.3 目标 2 1.4 功能需求 3 第二章 开发工具介绍 4 2.1 PHP 4 2.2 APACHE 5 2.3 MYSQL数据库 5 2.4 运行环境 WINDOWS XP 6 2.5 XAMPP 6 2.6 DREAMWEAVE8 6 2.7 EDITPLUS 7 第三章 需求…

【华为OD机试模拟题】用 C++ 实现 - 热点网络统计(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明热点网络统计【华为OD机试模拟题】题目输入输出描述示例一输入输出示例二输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出…

C++入门知识【超详解】

目录1.认识Chello worldC关键字2.命名空间3.std标准库4.输入输出5.缺省参数6.函数重载7.引用7.1引用的概念7.2引用的场景1.作参数2.作返回值7.3引用的注意点7.4指针和引用的区别8.auto关键字9.基于范围的for循环10.内联函数10.1概念10.2特征11. C98中的指针空值1.认识C hello …

数据结构——单链表(上)

&#x1f307;个人主页&#xff1a;_麦麦_ &#x1f4da;今日名言&#xff1a;“生活总是让我们遍体鳞伤&#xff0c;但到后来&#xff0c;那些受伤的地方一定会变成我们最强壮的地方。” ——海明威《永别了武器》 目录 ​编辑 一、前言 二、正言 3.1链表的概念及结构…

HMM(隐马尔科夫模型)-理论补充2

目录 一.大数定理 二.监督学习方法 1.初始概率 2.转移概率 3.观测概率 三.Baum-Welch算法 1.EM算法整体框架 2. Baum-Welch算法 3.EM过程 4.极大化 5.初始状态概率 6.转移概率和观测概率 四.预测算法 1.预测的近似算法 2.Viterbi算法 1.定义 2. 递推&#xff1…

倒计时2天:中国工程院院士谭建荣等嘉宾确认出席,“警务+”时代来临...

近日伴随公安部、科技部联合印发通知&#xff0c;部署推进科技兴警三年行动计划&#xff08;2023-2025年&#xff09;&#xff0c;现代科技手段与警务工作相结合的方式&#xff0c;正式被定义为未来警务发展的新趋势。 21世纪以来&#xff0c;随着科技的不断发展和创新&#xf…

硬间隔支持向量机算法、软间隔支持向量机算法、非线性支持向量机算法详细介绍及其原理详解

相关文章 K近邻算法和KD树详细介绍及其原理详解朴素贝叶斯算法和拉普拉斯平滑详细介绍及其原理详解决策树算法和CART决策树算法详细介绍及其原理详解线性回归算法和逻辑斯谛回归算法详细介绍及其原理详解硬间隔支持向量机算法、软间隔支持向量机算法、非线性支持向量机算法详细…

JavaScript Date 日期对象实例合集

文章目录JavaScript Date 日期对象实例合集一&#xff0c;使用 Date() 方法获得当日的日期二&#xff0c;使用 getFullYear() 获取年份三&#xff0c;使用getTime() 返回从 1970 年 1 月 1 日至今的毫秒数四&#xff0c;如何使用 setFullYear() 设置具体的日期五&#xff0c;使…

小兔鲜注册页面验证、阶段案例(登录、首页页面)(重点)、小兔鲜放大镜效果——DOM

目录 1. 小兔鲜注册页面验证 2. 阶段案例&#xff08;登录、首页页面&#xff09;&#xff08;重点&#xff09; 3. 小兔鲜放大镜效果 1. 小兔鲜注册页面验证 验证码模块有个小问题&#xff1a; 连续点击获取验证码会导致触发多次计时器&#xff0c;会导致计时出现问题&…

【Stata】从入门到精通.零基础小白必学的教程,一学就fei

视频教程移步&#xff1a;https://www.bilibili.com/video/BV1hK4y1d714/?p4&spm_id_frompageDriver&vd_sourcecc8074e9c81a225f214226065db53d32P3 第二讲 Stata处理数据全流程&#xff08;上&#xff09; P3 - 01:37&#xfeff;内置数据 file example datasets使用…

FastDFS - 分布式文件存储系统

目录一、分布式文件存储1.分布式文件存储的由来2.常见的分布式存储框架二、FastDFS介绍三、FastDFS安装1.拉取镜像文件2.构建Tracker服务3.构建Storage服务4.测试图片上传四、客户端操作1.Fastdfs-java-client1.1 文件上传1.2 文件下载2.SpringBoot整合一、分布式文件存储 1.分…

【MySQL】什么是意向锁 IS IX 及值得学习的思想

文章目录前言行锁和表锁使用意向锁意向锁的算法意向锁的思想JDK 中相似的思想前言 之前看 MySQL 都刻意忽略掉了 IS 和 IX 锁&#xff0c;今天看 《MySQL 是怎样运行的》&#xff0c;把意向锁讲的很通透&#xff0c;本篇博文提炼一下思想。 I: Intention Lock&#xff08;意向…

自建服务器系列-0元搭建linux服务器(windows笔记本)

0元搭建linux服务器一.windows装Centos71.1 centos7 iso镜像1.2 准备U盘1.3 UltraISO 启动盘制作工具安装1.4 准备一台windows 机器1.5 安装过程二 、连接无线wifi三、固定wifi ip3.1 查看网络状态3.2 查看DNS3.3 查看GATEWAY3.4 设置静态IP四、一键快速安装单机版k8s五、申请域…

游戏高度可配置化:通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

游戏高度可配置化&#xff1a;通数据引擎在模块化游戏开发中的应用构想图解 ygluu 码客 卢益贵 目录 一、前言 二、模块化与插件 1、常规模块化 2、插件式模块化&#xff08;插件开发&#xff09; 三、通用数据引擎理论与构成 1、名字系统&#xff08;数据类型&#xf…

数据结构与算法之树结构基础

目录为什么要使用树结构树结构基本概念树的种类树的存储与表示常见的一些树的应用场景为什么要使用树结构 线性结构中不论是数组还是链表&#xff0c;他们都存在着诟病&#xff1b;比如查找某个数必须从头开始查&#xff0c;消耗较多的时间。使用树结构&#xff0c;在插入和查…