当前位置: 首页 > news >正文

前端三剑客 —— CSS (第四节)

目录

内容回顾:

1.常见样式

2.特殊样式

特殊样式

过滤效果

动画效果

动画案例:

渐变效果

其他效果:

多列效果

字体图标(icon)


内容回顾:

1.常见样式

        text-shadow x轴 y 阴影的模糊程度 阴影的颜色

        box-shadow

        border-radio 实现圆角

        margin 内边距

        padding 外边距

        background

2.特殊样式

        媒体查询:@media

        自定义字体:@font-face {

        font-family:自定义名称;

        src:url(“字体的路径”);

        }

        选择{

                font-family:自定义名称;

        }

        转换:transform

        移动:translate()

        旋转:rotate()

        缩放:scale()

        翻转:skew()

        综合:matrix()

特殊样式

过滤效果

从一个状态变为另一个状态的过程,要想有过滤效果,我们就需要又触发条件,通常触发的条件为鼠标移动到元素上(hover)

单项过渡

多项过渡

transition这个属性的值

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>过渡效果比较</title>

    <style>

        .box {

            width: 200px;

            height: 200px;

            background-color: #317FE5;

            /*transition: width 5s ease 2s;*/

            /*transition: width 3s linear;*/

            /*transition: width 3s ease-in;*/

            /*transition: width 3s ease-in-out;*/

            transition: width 3s ease-out;

        }

        .box:hover {

            width: 500px;

        }

    </style>

</head>

<body>

<div class="box"></div>

</body>

</html>

动画效果

在CSS3中提供了基于CSS动画效果,我们需要先定义动画,然后再使用动画

定义动画使用@keyframes,从而使用动画animate

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>动画效果</title>

    <style>

        /*.box {*/

        /*    width: 200px;*/

        /*    height: 200px;*/

        /*    background: #317FE5;*/

        /*    transition: transform 2s;*/

        /*}*/

        /*.box:hover {*/

        /*    transform: translateX(100px);*/

        /*}*/

        /* 定义动画 */

        @keyframes myAnimate {

            from {

                left: 5px;

                background: #317FE5;

            }

            to {

                left: 500px;

                background: red;

            }

        }

        .box {

            width: 200px;

            height: 200px;

            background: #317FE5;

            animation: myAnimate 5s;

            position: absolute;

            left: 5px;

            top: 5px;

        }

    </style>

</head>

<body>

<div class="box"></div>

</body>

</html>

另一个效果

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>动画效果</title>

    <style>

        /* 定义动画 */

        @keyframes myAnimate {

            0% {

                left: 5px;

                top: 5px;

            }

            25% {

                left: 500px;

                top: 5px;

            }

            50% {

                left: 500px;

                top: 200px;

            }

            75% {

                left: 5px;

                top: 200px;

            }

            100% {

                left: 5px;

                top: 5px;

            }

        }

        .box {

            width: 200px;

            height: 200px;

            background: #317FE5;

            animation: myAnimate 5s;

            position: absolute;

            left: 5px;

            top: 5px;

        }

    </style>

</head>

<body>

<div class="box"></div>

</body>

</html>

动画属性

属性

描述

@keyframes

规定动画。指定

css样式

animation

所有动画属性的简写属性,除了 animation-play-state 属性。

动画名称

animation-name

规定 @keyframes 动画的名称。

动画名称

animation-duration

规定动画完成一个周期所花费的秒或毫秒。默认是 0。

数值

animation-timing-function

规定动画的速度曲线。默认是 "ease"。

ease-in-out、linear、ease、ease-in、ease-out

animation-delay

规定动画何时开始。默认是 0。

数值

animation-iteration-count

规定动画被播放的次数。默认是 1。

数值或者infinite

animation-direction

规定动画是否在下一周期逆向地播放。默认是 "normal"。

normal、alternate

animation-play-state

规定动画是否正在运行或暂停。默认是 "running"。

paused、running

animation-fill-mode

规定对象动画时间之外的状态。

none、forwards、backwards、both

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>动画属性介绍</title>

    <style>

        .box {

            width: 200px;

            height: 200px;

            background: #317FE5;

            position: absolute;

            top: 5px;

            left: 5px;

            /*animation: myMove 5s;*/

            /* 指定动画名称 */

            /*animation-name: myMove;*/

            /* 定义动画持续时间,单位是秒或毫秒 */

            /*animation-duration: 3s;*/

            /* 定义动画执行的效果 */

            /*animation-timing-function: ease-in;*/

            /* 定义动画执行次数,默认为 1 次,如果希望无限次,则值为 infinite */

            /*animation-iteration-count: infinite;*/

            /*animation-iteration-count: 1;*/

            /* 定义动画的运行方向 */

            /*animation-direction: alternate-reverse;*/

            /*animation-direction: alternate;*/

            /*animation-play-state: paused;*/

            animation: myMove 3s ease-in infinite alternate;

        }

        @keyframes myMove {

            from {

                /*background: #317FE5;*/

                left: 5px;

                top: 5px;

            }

            to {

                /*background: red;*/

                left: 200px;

                top: 5px;

            }

        }

    </style>

</head>

<body>

<div class="box"></div>

</body>

</html>

动画案例:

定义两个圆,一个圆逆时针旋转,另一个圆顺时针旋转。

下图是定义分析

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>动画的案例</title>

    <style>

        .outer {

            width: 300px;

            height: 300px;

            background: url("image/5.jpeg") no-repeat center center;

            overflow: hidden;

            border-radius: 50%;

            /*transform: translateY(50%);*/

            position: absolute;

            left: 50%;

            top: 50%;

            margin-top: -150px;

            margin-left: -150px;

            animation: outerAnimate 5s linear infinite;

        }

        .inner {

            width: 200px;

            height: 200px;

            background: url("image/7.jpeg") no-repeat center center;

            /*transform: translate(25%, 25%);*/

            border-radius: 50%;

            position: absolute;

            left: 50%;

            top: 50%;

            margin-left: -100px;

            margin-top: -100px;

            animation: innerAnimate 3s linear infinite;

        }

        @keyframes outerAnimate {

            from {

                transform: rotate(360deg);

            }

            to {

                transform: rotate(0deg);

            }

        }

        @keyframes innerAnimate {

            from {

                transform: rotate(0deg);

            }

            to {

                transform: rotate(360deg);

            }

        }

    </style>

</head>

<body>

<div class="outer">

    <div class="inner"></div>

</div>

</body>

</html>

渐变效果

在CSS3中提供了可以让两种或多种颜色之间的显示平稳过渡。我们只需要使用background-image:linear-gradients 属性指定即可。它的语法为:

简单示例

其他效果:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>渐变效果2</title>

    <style>

        .box {

            width: 300px;

            height: 300px;

            margin: 50px auto;

            border: 1px solid #333333;

            border-radius: 50%;

            /* 可以指定渐变的角度 */

            /*background-image: linear-gradient(180deg, #ff0000, yellow);*/

            /* 可以指定渐变的透明度 */

            /*background-image: linear-gradient(to right, rgba(255,0,0,.5), rgba(255, 255, 0, 0.5));*/

            /* 重复的线性渐变 */

            /*background-image: linear-gradient(red, yellow 10%, green 20%);*/

            /* 径向渐变 */

            background-image: radial-gradient(red, yellow);

        }

    </style>

</head>

<body>

<div class="box"></div>

</body>

</html>

多列效果

在CSS3中提供了将文本内容设计成像报纸一样的多列布局

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>多列效果</title>

    <style>

        .box {

            column-count: 3;

        }

    </style>

</head>

<body>

<h1>下面的数据呈现3列展示</h1>

<div class="box">

    “当我年轻的时候,我梦想改变这个世界;当我成熟以后,我发现我不能够改变这个世界,我将目光缩短了些,决定只改变我的国家;当我进入暮年以后,我发现我不能够改变我们的国家,我的最后愿望仅仅是改变一下我的家庭,但是,这也不可能。当我现在躺在床上,行将就木时,我突然意识到:如果一开始我仅仅去改变我自己,然后,我可能改变我的家庭;在家人的帮助和鼓励下,我可能为国家做一些事情;然后,谁知道呢?我甚至可能改变这个世界。”

</div>

</body>

</html>

字体图标(icon

阿里 有阿里图标库 可在里面进行下载图标和代码 (百度搜索阿里图标库即可找到)

相关文章:

前端三剑客 —— CSS (第四节)

目录 内容回顾&#xff1a; 1.常见样式 2.特殊样式 特殊样式 过滤效果 动画效果 动画案例&#xff1a; 渐变效果 其他效果&#xff1a; 多列效果 字体图标&#xff08;icon&#xff09; 内容回顾&#xff1a; 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的…...

Linux文件IO(3):使用文件IO进行文件的打开、关闭、读写、定位等相关操作

目录 1. 文件IO的概念 2. 文件描述符概念 3. 函数介绍 3.1 文件IO-open函数 3.2 文件IO-close函数 3.3 文件IO-read函数 3.4 文件IO-write函数 3.5 文件IO-lseek函数 4. 代码练习 4.1 要求 4.2 具体实现代码 4.3 测试结果 5. 总结 1. 文件IO的概念 posix(可移植操作系统接…...

Vite 项目中环境变量的配置和使用

Vite 项目中环境变量的声明 我们要在 Vite 项目中进行环境变量的声明&#xff0c;那么需要在项目的根目录下&#xff0c;新建 .env.[mode] 文件用于声明环境变量&#xff0c;如&#xff1a; .env.test 文件用于测试环境下项目全局变量的声明.env.dev 文件用于开发环境下项目全…...

C++读取.bin二进制文件

C读取.bin二进制文件 在C中&#xff0c;可以使用文件输入/输出流来进行二进制文件的读写操作&#xff0c;方便数据的保存和读写。 //C读取bin二进制文件 int read_bin() {std::ifstream file("data_100.bin", std::ios::in | std::ios::binary);if (file) {// 按照…...

【ZZULIOJ】1038: 绝对值最大(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 输入3个整数&#xff0c;输出绝对值最大的那个数。 输入 输入包含3个int范围内的整数&#xff0c;用空格隔开。 输出 输出三个数中绝对值最大的数&#xff0c;单独占一行。若绝对值最大的数不唯…...

递归算法讲解2

前情提要 上一篇递归算法讲解在这里 递归算法讲解&#xff08;结合内存图&#xff09; 没看过的小伙伴可以进去瞅一眼&#xff0c;谢谢&#xff01; 递归算法的重要性 递归算法是非常重要的&#xff0c;如果想要进大厂&#xff0c;以递归算法为基础的动态规划是必考的&…...

机器学习第33周周报Airformer

文章目录 week33 AirFormer摘要Abstract一、论文的前置知识1. 多头注意力机制&#xff08;MSA&#xff09;2. 具有潜变量的变分模型 二、文献阅读1. 题目2. abstract3. 问题与模型阐述3.1 问题定义3.2 模型概述3.3 跨空间MSA&#xff08;DS-MSA&#xff09;3.4 时间相关MSA&…...

设计模式(12):代理模式

一.核心作用 通过代理&#xff0c;控制对对象的访问;可以详细控制访问某个对象的方法&#xff0c;在调用这个方法前做前置处理&#xff0c;调用这个方法后做后置处理。 二.核心角色 抽象角色&#xff1a; 定义代理角色和真实角色的公共对外方法;真实角色&#xff1a; 实现抽…...

前端9种图片格式基础知识, 你应该知道的

彩色深度 彩色深度标准通常有以下几种&#xff1a; 8位色&#xff0c;每个像素所能显示的彩色数为2的8次方&#xff0c;即256种颜色。16位增强色&#xff0c;16位彩色&#xff0c;每个像素所能显示的彩色数为2的16次方&#xff0c;即65536种颜色。24位真彩色&#xff0c;每个…...

ChatGPT 与 OpenAI 的现代生成式 AI(上)

原文&#xff1a;Modern Generative AI with ChatGPT and OpenAI Models 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 序言 本书以介绍生成式 AI 领域开始&#xff0c;重点是使用机器学习算法创建新的独特数据或内容。它涵盖了生成式 AI 模型的基础知识&#xff0c…...

全量知识系统 程序详细设计之架构设计:一个信息系统架构

统架构&#xff0c;整体设计分成了三部分--三种方面&#xff1a;信息nformation、系统Syste 原文 以下是对全知系统程序详细设计需要的架构规划的考虑。 全知系统架构是一个信息系统架构&#xff0c;整体设计分成了三部分&#xff08;三种“方面”&#xff09;&#xff1a;信…...

从零开始:成功进入IT行业的方法与技巧

如今&#xff0c;信息技术&#xff08;IT&#xff09;行业成为了就业市场上的热门领域。由于其快速发展和广阔的职业机会&#xff0c;许多人希望能够进入这个行业。然而&#xff0c;对于没有任何相关背景知识的人来说&#xff0c;要成功进入IT行业可能会面临一些挑战。本文将分…...

SpringCloud - 如何本地调试不会注册到线上环境(Nacos)?

问题描述 有时候我们需要本地调试注册到 Nacos 上&#xff0c;但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。 原因分析 一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace spring:application:name: app-serv…...

1.9 面试经典150题 除自身以外数组的乘积

除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0…...

【美团笔试题汇总】2023-09-02-美团春秋招笔试题-三语言题解(CPP/Python/Java)

&#x1f36d; 大家好这里是KK爱Coding &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新美团近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f…...

小黑逆向爬虫探索与成长之路:小黑独立破解毛毛租数据加密与解密

前言 有道和招标网的加密入口定位在前面两期做了详细的介绍&#xff0c;本小结将通过简单的关键词搜索定位到加密与解密入口 数据接口寻找与请求 根据响应数据长度&#xff0c;确定数据接口&#xff0c;发现传入的参数需要加密&#xff0c;响应的结果需要解密&#xff0c;后…...

Generative Question-Answering with Long-Term Memory

...

深入浅出 -- 系统架构之微服务架构常见的六种设计模式

面向服务的架构&#xff08;SOA&#xff09; 面向服务的架构&#xff08;SOA&#xff09;是一种设计方法&#xff0c;也是一个组件模型&#xff0c;它将应用程序的不同功能单元&#xff08;称为服务&#xff09;通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的…...

SSM框架学习——SqlSession以及Spring与MyBatis整合

SqlSession以及Spring与MyBatis整合 准备所需要的JAR包 要实现MyBatis与Spring的整合&#xff0c;很明显需要这两个框架的JAR包&#xff0c;但是只是使用这两个框架中所提供的JAR包是不够的&#xff0c;还需要配合其他包使用&#xff1a; Spring的JAR包MyBatis的JAR包Spring…...

6、【单例模式】确保了一个类在程序运行期间只有一个实例

你好&#xff0c;我是程序员雪球 在软件设计中&#xff0c;单例模式是一种常见的设计模式。它确保了一个类在程序运行期间只有一个实例&#xff0c;并提供了全局访问该实例的方式。单例模式在许多场景中都有广泛的应用&#xff0c;例如共享资源管理、数据库连接、日志记录器等…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...