Web前端开发之CSS_3

news/2024/5/19 17:30:27
  • CSS3 新特性
  • 动画
  • 媒体查询
  • 雪碧图
  • 字体图标

1. CSS3 新特性

1.1 圆角

        使用CSS3 border-radius 属性,可以给任何元素制作“圆角”。border-radius属性,可以使用以下规则:

  • 四个值:依次为左上角、右上角、右下角和左下角(顺时针)
  • 三个值:第一个值为左上角,第二个值为右上角和左下角,第三个值为右下角
  • 两个值:第一个值为左上角和右下角,第二个值为右上角和左下角
  • 一个值:四个圆角值相同
1.2 阴影

        box-shadow向框添加一个或多个阴影。

box-shadow: h-shadow v-shadow blur color;

描述
h-shadow必选,水平阴影的位置
v-shadow必选,垂直阴影的位置
blur可选,模糊距离
color可选,阴影的颜色

2. 动画

        动画是使元素从一种样式逐渐变化为另一种样式的效果。可以改变任意多的样式任意多的次数。用百分比来规定变化发生的时间,或用关键词"from""to",等同于0%100%

2.1 @keyframes创建动画

@keyframes name{                // name:动画名称,开发人员自己命名

        from|0%{

                css样式

        }

        percent{                         // 为百分比值,可添加多个百分比值

                css样式

        }

        to|100%{

                css样式

        }

}

2.2 animation执行动画

animation: name duration timing-function delay iteration-count direction;

描述
name设置动画名称
duration设置动画持续时间
timing-function设置动画效果的速率(如下)
delay设置动画的开始时间(延时执行)
iteration-count设置动画循环的次数,infinite为无线次数的循环
direction设置动画播放的方向(如下)
animation-play-state控制动画的播放状态:running代表播放,pause代表停止播放
timing-function值描述
ease逐渐变慢(默认)
linear匀速
ease-in加速
ease-out减速
ease-in-out先加速后减速
direction值描述
normal默认值为normal表示向前播放
alternate动画播放在第偶数次向前播放,第奇数次反方向播放
 2.3 切换背景颜色

div{

        width: 200px;

        height: 200px;

        background-color: red;

        animation: myAnim 3s linear 0s infinite;

}

div:hover{

        animation-play-state: paused;             // 可用于更改背景颜色

}

@keyframes myAnim{

        0%{

                width: 200px;

                background-color: red;

        }

        50%{

                width: 400px;

                background-color: green;

        }

        100%{

                width: 200px;

                background-color: red;

        }

}

2.4 呼吸效果

.box{

        width: 500px;

        height: 500px;

        margin: 40px auto;

        background-color: #2b92d4;

        border-radius: 5px;

        box-shadow: 0 1px 2px rgba(0, 0, 0, .3);

        animation: breathe 1s ease-in-out infinite alternate;

}

@keyframes breathe{

        0%{

                opacity: 0.2;

                box-shadow: 0 1px 2px rgba(255, 255, 255, 0.1);

        }

        50%{

                opacity: 0.5;

                box-shadow: 0 1px 2px rgba(18, 190, 84, 0.76);

        }

        100%{

                opacity: 1;

                box-shadow: 0 1px 30px rgba(59, 255, 255, 1);

        }

}

3. 媒体查询

        媒体查询能使页面在不同终端设备下达到不同的效果。媒体查询会根据设备的大小自动识别加载不同的样式

3.1 设置meta标签

        使用设备的宽度作为视图宽度并禁止初始的缩放。在<head>标签里加入这个meta标签。

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

  • width = device-width 宽度等于当前设备的宽度
  • initial-scale 初始的缩放比例(默认设置为1.0)
  • maximum-scale 允许用户缩放到的最大比例(默认设置为1.0)
  • user-scalable 用户是狗可以手动缩放(默认设置为no)
3.2 媒体查询语法

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

<p class="p1">哈哈哈</p>

<p class="p2">呵呵呵</p>

@media screen and (max-width:768px) {    /* 设备小于768px加载样式 */

        .box{

                background-color: aqua;

        }

        .p1{

                display: none;

        }

        .p2{

                display: none;

        }

}

@media screen and (min-width:768px) and (max-width:996px) {

        .box{

                background-color: chartreuse;

        }

        .p1{

                display: none;

        }

        .p2{

                display: block;

        }

}

@media screen and (min-width:996px) {

        .box{

                background-color: red;

        }

        .p1{

                display: block;

        }

        .p2{

                display: block;

        }

4. 雪碧图

        CSS Sprite也叫CSS精灵图、CSS雪碧图,是一种网页图片应用处理方式。它允许将一个页面涉及到的所有零星图片都包含到一张大图中去

优点:

  • 减少图片的字节
  • 减少网页的http请求,从而大大的提高页面的性能

原理:

  • 通过background-image引入背景图片
  • 通过background-position把背景图片移动到自己需要的位置

<i class="icon1"></i>

<i class="icon2"></i>

.icon{

        display:block;                                // 设置为块级元素后,可设置宽高属性

        background-image:url(1.png);

        background-position: -20px 0;

        width:45px;

        height:70px;

.icon2{    

        display:block;

        background-image:url(1.png);

        background-position: -93px -84px;

        width:45px;

        height:70px;

}

5. 字体图标

        使用图标时,会遇到失真的情况,而且图片数量越多,页面加载就越慢。所以,可以使用字体图标的方式显示图标既解决了失真问题,也解决了图片占用资源的问题

常用字体图标库:阿里字体图标库

优点:

  • 轻量性:加载速度快,减少http请求
  • 灵活性:可利用CSS设置大小颜色等
  • 兼容性:网页字体支持所有现代浏览器,包括IE低版本

使用字体图标:

  • 注册账号并登录
  • 选取图标或搜索图标
  • 添加购物车
  • 下载代码
  • 选择 font-class 引用

<span class="iconfont icon-add-circle"></span>

<link rel="stylesheet" href="./css/iconfont.css">

.iconfont{

        font-size:35px;

        background-color:#e1251b

}


http://www.mrgr.cn/p/08526261

相关文章

Android手写自己的路由SDK

实现自己的路由框架 ​ 在较大型的Android app中常会用到组件化技术&#xff0c;针对不同的业务/基础功能对模块进行划分&#xff0c;从上到下为壳工程、业务模块、基础模块。其中业务模块依赖基础模块&#xff0c;壳工程依赖业务模块。同级的横向模块&#xff08;比如多个业务…

iMazing下载安装不了怎么办?

iMazing是一款可用于iPhone、iPad等ios移动设备管理软件&#xff0c;但需要注意的是&#xff0c;iMazing只能安装在Windows与Mac系统中&#xff0c;不能安装在iOS移动设备上。iOS移动设备可以通过USB线或Wi-Fi连接Windows或Mac系统上的iMazing软件。 iMazing的安装失败&#x…

手撕spring框架(3)

手撕spring框架&#xff08;3&#xff09; 相关系列 手撕spring框架&#xff08;1&#xff09; 手撕spring框架&#xff08;2&#xff09; 手撕spring框架&#xff08;4&#xff09; InitializingBean 接口详解 什么是 InitializingBean 接口&#xff1f; InitializingBean 接…

【深度学习】序列模型

深度学习&#xff08;Deep Learning&#xff09;是机器学习的一个分支领域&#xff1a;它是从数据中学习表示的一种新方法&#xff0c;强调从连续的层中进行学习&#xff0c;这些层对应于越来越有意义的表示。 1. 为什么选择序列模型&#xff1f; 循环神经网络&#xff08;RNN…

OpenHarmony实战开发-请求自绘制内容绘制帧率

对于基于XComponent进行Native开发的业务&#xff0c;可以请求独立的绘制帧率进行内容开发&#xff0c;如游戏、自绘制UI框架对接等场景。 接口说明 开发步骤 说明&#xff1a; 本范例是通过Drawing在Native侧实现图形的绘制&#xff0c;并将其呈现在NativeWindow上 1.定义Ark…

出门一笑, “栈” 落江横 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

TI对OpenVX标准的实现-TIOVX

TIOVX是TI对OpenVX标准的实现 TIOVX允许用户使用OpenVX API创建视觉和计算应用程序。这些OpenVX应用程序可以在TDA2x、TDA3x和TDA4x等TI SoC上执行。TIOVX完全符合OpenVX v1.1规范。TIOVX还为C66x DSP提供了优化的OpenVX内核。扩展API允许用户集成自主开发的自定义内核,并使用…

【数据结构与算法】之五道链表进阶面试题详解!

目录 1、链表的回文结构 2、相交链表 3、随机链表的复制 4、环形链表 5、环形链表&#xff08;||&#xff09; 6、完结散花 个人主页&#xff1a;秋风起&#xff0c;再归来~ 数据结构与算法 个人格言&#xff1a;悟已往之不谏&#xff0c;知…

用于图生成的自回归扩散模型 笔记

1 Title Autoregressive Diffusion Model for Graph Generation&#xff08;Lingkai Kong、Jiaming Cui、Haotian Sun、Yuchen Zhuang、B. Aditya Prakash、Chao Zhang&#xff09;【PMLR 2022】 2 Conclusion This study propose an autoregressive diffusion model …

RabbitMQ 是如何做延迟消息的 ?——Java全栈知识(15)

RabbitMQ 是如何做延迟消息的 &#xff1f; 1、什么是死信&#xff1f; 当一个队列中的消息满足下列情况之一时&#xff0c;可以成为死信&#xff08;dead letter&#xff09;&#xff1a; 消费者使用 basic.reject 或 basic.nack 声明消费失败&#xff0c;并且消息的 reque…

实测好评!微信自动回复消息神器!高效沟通拿捏住!

随着企业规模的扩大和客户数量的增加&#xff0c;有效管理和回复每一条消息变得越来越具有挑战性。今天&#xff0c;就给大家分享一个高效的自动回复消息神器——个微管理系统&#xff0c;让你能够轻松应对各种沟通需求。 1、自动通过好友&#xff0c;提高沟通效率 每当有新的…

大模型争霸的下一站:不仅是超越GPT-4,更是寻求模型之间的平衡应用

文 | 智能相对论 作者 | 沈浪 知名科学杂志《Nature》发表了一篇关于大模型规模参数大小争议的文章《In Al, is bigger always better?》——AI大模型&#xff0c;越大越好吗&#xff1f;随着大模型应用走向实践&#xff0c;这一问题不可避免地成为了当前AI行业发展的焦点与…

iOS - Undefined symbols: 解决方法

Undefined symbols: 是让人苦恼的报错&#xff0c;如何知道是 哪个 symbols 不对呢&#xff1f; 今天探索到下面的方法&#xff1a; 1、点击导航上方 最右侧的按钮&#xff0c;查看历史报错 2、选中报错信息&#xff0c;右键选择 Expand All Transcripts 在出现的详细信息面…

springcloud微服务搭建多数据源(mysql,oracle,postgres,等等)管理模块,支持通过注解方式切换不同类型的数据库

1.背景 同一套微服务管理系统&#xff0c;业务完全一样&#xff0c;但不同的客户可能要求使用自己熟悉的数据库&#xff0c;比如&#xff0c;mysql&#xff0c;oracle&#xff0c;postgres&#xff0c;还有一些国产数据库。如果能够将数据库模块独立出来&#xff0c;兼容各家的…

【数据结构】C++语言实现栈(详细解读)

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

ai写作工具推荐:如何用AI人工智能进行写作

AI写作工具&#xff1a;提升创作效率的秘密武器 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;包括写作。AI写作工具&#xff0c;就是利用人工智能技术&#xff0c;帮助我们进行文本生成、语言优化等工作的工…

基于EWT联合SVD去噪

一、代码原理 &#xff08;1&#xff09;基于EWT-SVD的信号去噪算法原理 经验小波变换&#xff08;Empirical Wavelet Transform&#xff0c;EWT&#xff09;&#xff1a;EWT是一种基于信号局部特征的小波变换方法&#xff0c;能够更好地适应非线性和非平稳信号的特性。奇异值…

ChatGPT的真实能力如何?七大NLP任务一探究竟!

文章链接&#xff1a;https://arxiv.org/pdf/2405.00704 ChatGPT已经改变了人工智能社区&#xff0c;一个活跃的研究方向是ChatGPT的性能评估。评估的一个关键挑战是ChatGPT仍然是闭源的&#xff0c;传统的基准数据集可能已被ChatGPT用作训练数据。在本文中: 调查了最近的研究…

2024年CMS市场的份额趋势和使用统计

目前市面上有超过一半的网站都是使用CMS来搭建的&#xff0c;据不完全统计&#xff0c;现在大概有900多种CDM可供选择&#xff0c;以下是最常见的CMS的市场份额和使用率信息&#xff1a; 除了WordPress以外&#xff0c;Shopify和Wix也是比较流行的内容管理系统&#xff0c;尤其…

jupyter notebook使用与本地位置设置

本地安装好Anaconda之后&#xff0c;自带的有Jupter notebook。 使用jupyter notebook 使用jupyter notebook时&#xff0c;可以直接打开或者搜索打开&#xff1a; 打开后&#xff0c;我们生成的或者编辑的一些文件&#xff0c;都可以看到&#xff0c;如下&#xff1a; j…