前端CSS3 渐变详解

news2024/12/27 3:18:56

文章目录

  • CSS3 渐变详解
    • 一、引言
    • 二、CSS3 渐变基础
      • 1、线性渐变
        • 1.1、基本线性渐变
        • 1.2、改变渐变方向
      • 2、径向渐变
        • 2.1、基本径向渐变
        • 2.2、设置径向渐变的中心
    • 三、高级渐变技巧
      • 1、重复渐变
        • 1.1、重复线性渐变
        • 1.2、重复径向渐变
    • 四、总结

CSS3 渐变详解

在这里插入图片描述

一、引言

在现代网页设计中,CSS3 渐变提供了一种强大而灵活的方式来创建平滑的颜色过渡效果。与传统的图像文件相比,CSS3 渐变不仅可以减少页面加载时间,还能在不同设备和分辨率下保持更好的视觉效果。本文将详细介绍 CSS3 渐变的使用方法,包括线性渐变、径向渐变以及它们的重复渐变形式。

二、CSS3 渐变基础

在这里插入图片描述

1、线性渐变

线性渐变是最常见的渐变类型,它从一个点开始,沿着直线过渡到另一个颜色。默认情况下,线性渐变的方向是从上到下,但可以通过调整参数来改变方向。

1.1、基本线性渐变

以下是一个简单的线性渐变示例,从蓝色过渡到粉红色:

div {
  width: 120px;
  height: 120px;
  background: linear-gradient(blue, pink);
}
1.2、改变渐变方向

你可以通过指定方向来改变渐变的方向,例如从左到右:

div {
  width: 120px;
  height: 120px;
  background: linear-gradient(to right, blue, pink);
}

在这里插入图片描述

2、径向渐变

径向渐变与线性渐变不同,它从一个中心点向外辐射。这种渐变类型适合创建圆形或椭圆形的渐变效果。

2.1、基本径向渐变

以下是一个简单的径向渐变示例,从红色过渡到蓝色:

div {
  width: 120px;
  height: 120px;
  background: radial-gradient(red, blue);
}
2.2、设置径向渐变的中心

你可以通过 at 关键字来指定径向渐变的中心位置:

div {
  width: 120px;
  height: 120px;
  background: radial-gradient(at center, red, blue);
}

三、高级渐变技巧

1、重复渐变

CSS3 的重复渐变功能允许设计师创建周期性的颜色渐变效果,这对于制作背景图案、装饰元素等都非常有用。重复渐变可以是线性的,也可以是径向的,它们都能在指定的方向或中心点重复出现。

1.1、重复线性渐变

重复线性渐变是通过 repeating-linear-gradient() 函数实现的。这个函数允许你定义一个线性渐变,然后沿着指定的方向重复这个渐变。这对于创建条纹、斑马线等效果非常有用。

示例:创建周期性的红蓝条纹背景

下面的例子中,我们将创建一个从左上到右下的对角线方向的重复线性渐变,渐变中包含红蓝两种颜色,每种颜色的条纹宽度为5px,总共10px为一个周期。

div.striped-background {
  width: 200px;
  height: 200px;
  background: repeating-linear-gradient(
    -45deg,
    red 0px, 
    red 5px, 
    blue 5px, 
    blue 10px
  );
}

在这个例子中,-45deg 指定了渐变的方向,red 0pxred 5px 定义了红色条纹的开始和结束位置,blue 5pxblue 10px 定义了蓝色条纹的开始和结束位置。由于红色和蓝色条纹的结束和开始位置是连续的,所以会形成一个无缝的周期性条纹效果。

1.2、重复径向渐变

重复径向渐变是通过 repeating-radial-gradient() 函数实现的。这个函数允许你定义一个从中心点向外辐射的渐变,并且可以重复这个渐变模式。这对于创建圆形或椭圆形的图案非常有用。

示例:创建周期性的红蓝同心圆背景

下面的例子中,我们将创建一个周期性的红蓝同心圆渐变效果,每个同心圆的宽度为5px,总共10px为一个周期。

div.concentric-circles {
  width: 200px;
  height: 200px;
  background: repeating-radial-gradient(
    circle at center,
    red 0px,
    red 5px,
    blue 5px,
    blue 10px
  );
}

在这个例子中,circle at center 指定了渐变的形状和中心点,red 0pxred 5px 定义了第一个红色圆的开始和结束位置,blue 5pxblue 10px 定义了第二个蓝色圆的开始和结束位置。这样,就会在元素的背景上创建出周期性的红蓝同心圆效果。

通过这两种重复渐变技术,你可以为你的网页设计添加丰富而动态的视觉效果。

四、总结

CSS3 渐变是一种强大的工具,它不仅可以减少网页的加载时间,还能提供更丰富的视觉效果。通过线性渐变、径向渐变以及它们的重复形式,设计师可以创造出几乎无限的颜色过渡效果。掌握这些技巧,可以让你的网页设计更加生动和吸引人。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • MDN Web Docs - 使用 CSS 渐变
  • 菜鸟教程 - CSS3 渐变

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

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

相关文章

2024-11-13 Unity Addressables2——寻址资源设置

文章目录 1 设置可寻址资源2 资源组窗口2.1 资源信息2.2 右键资源选项2.3 右键分组选项2.4 创建分组2.5 配置文件2.6 Tools 工具2.7 Play Mode Script2.7 构建打包 3 补充 1 设置可寻址资源 方法一:勾选 Inspector 窗口中的 “Addressable”。方法二:选…

课程讲解--哈夫曼树:原理、特性、应用与实践

前言 在这个信息如潮水般涌动的时代,我,一篇小小的文章,静静地躺在某个角落,怀揣着一份期待,一份对认可的渴望。 我可能没有华丽的辞藻堆砌成的璀璨外表,也没有跌宕起伏如传奇故事般的情节,但…

HP G10服务器ESXI6.7告警提示ramdisk tmp已满

物理服务器是HP G10 VCENTER内两台服务器报错提示ramdisk"tmp"已满,无法写入文件 登录ESXI命令行后发现两台主机的/tmp目录都没有空间了 定位到是ams-bbUsg.txt文件占用了大量的空间 1、关闭集群的DRS功能 2、迁移当前主机上面运行的所有虚拟机至其他主…

Mysql篇-Buffer Pool中的三大链表

为什么要有 Buffer Pool? 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,那就加个缓存。所以,当数据从磁盘中取出后,缓存内存中&#xf…

万字长文解读深度学习——ViT、ViLT、DiT

文章目录 🌺深度学习面试八股汇总🌺ViT1. ViT的基本概念2. ViT的结构与工作流程1. 图像分块(Image Patch Tokenization)2. 位置编码(Positional Encoding)3. Transformer 编码器(Transformer En…

PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸

小编最近有一篇png图片要批量压缩,大小都在5MB之上,在网上找了半天要么就是有广告,要么就是有毒,要么就是功能复杂,整的我心烦意乱。 于是我自己用python写了一个纯净工具,只能压缩png图片,没任…

2.索引:MySQL 索引分类

MySQL中的索引是提高数据查询速度的重要工具,就像一本书的目录,可以帮助我们快速定位到所需的内容。选择适合的索引类型对数据库设计和性能优化至关重要。本文将详细介绍MySQL中常见的索引类型,并重点讲解聚集索引和二级索引的概念及应用。 1…

attention 注意力机制 学习笔记-GPT2

注意力机制 这可能是比较核心的地方了。 gpt2 是一个decoder-only模型,也就是仅仅使用decoder层而没有encoder层。 decoder层中使用了masked-attention 来进行注意力计算。在看代码之前,先了解attention-forward的相关背景知识。 在普通的self-atten…

Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)

作者:来自 Elastic Ranjana Devaji, Dana Juratoni Elasticsearch 8.16 引入了 BBQ(Better Binary Quantization - 更好的二进制量化)—— 一种压缩向量化数据的创新方法,其性能优于传统方法,例如乘积量化 (Product Qu…

C语言 char 字符串 - C语言零基础入门教程

目录 一.char 字符串简介 二.字符和字符串区别 1.取值范围相同2.字符串由多个字符构成3.字符串和字符使用 printf 函数 三.char 字符串遍历四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.char 字符串简介 在C 语言中,除了前面介绍…

小程序文件如何直接上传到oss?一篇文章搞定!

文件上传到 OSS 的小程序工具函数 此工具函数 uploadOss 用于在微信小程序中将临时文件上传到阿里云 OSS(对象存储服务)。它提供了灵活的参数设置,允许自定义文件路径、文件名前缀和文件目录。 目录 环境依赖函数说明参数使用示例注意事项…

使用Spring AI中的RAG技术,实现私有业务领域的大模型系统

前言 在上一篇文章《使用SpringAI快速实现离线/本地大模型应用》中,记录了如何使用SpringAI来调用我们的本地大模型,如何快速搭建一个本地大模型系统,并演示本地大模型的智能对话、图片理解、文生图等功能。 但在前文中,我们把S…

数据分析-系统认识数据分析

目录 数据分析的全貌 观测 实验 应用 数据分析的全貌 观测 实验 应用

4. 查看并更新langgraph节点

导入必要的库和设置工具 首先,我们需要导入一些必要的库,并设置我们的工具。这些工具将用于在Spotify和Apple Music上播放歌曲。 from langchain_openai import ChatOpenAI from langchain_core.tools import tool from langgraph.graph import Messag…

使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面

今天上线的时候发现系统不同显示好像不一样,苹果手机打开的时候是正常的,但是一旦用安卓手机打开就会出现label不置顶的情况。尝试了很多种办法,也在官方查看了map相关的文档,发现并没有给label设置zIndex的属性,只看到…

【专题】计算机网络之网络层

1. 网络层的几个重要概念 1.1 网络层提供的两种服务 (1) 让网络负责可靠交付 计算机网络模仿电信网络,使用面向连接的通信方式。 通信之前先建立虚电路 VC (Virtual Circuit) (即连接),以保证双方通信所需的一切网络资源。 如果再使用可靠传输的网络…

vTESTstudio系列15--vTESTstudio-Doors的需求和测试用例的管理

最近有朋友在咨询vTESTstudio中怎么去跟Doors里面的需求去做好管理这方面的问题,临时加两篇文章介绍一下,Lets Go!!! 目录 1.Doors的配置: 1.1 安装Doors AddIn for vTESTstudio: 1.2 更新XML脚本: 1.3 导出需求的Trace Item…

波动中的金钥匙:趋势震荡指标——源码公布,仅供学习

趋势与震荡,两者在市场运行中紧密相连,相互影响。趋势往往是震荡累积后的自然延伸,而震荡则常常是趋势形成与调整的前奏。在各类行情与不同时间周期中,当前的震荡不过是更大周期趋势中的一个组成部分;相应的&#xff0…

面试_ABtest原理简介

01 什么是ABtest ABtest来源于假设检验,现有两个随机均匀的有样本组A、B,对其中一个组A做出某种改动,实验结束后分析两组用户行为数据,通过显著性检验,判断这个改动对于我们所关注的核心指标是否有显著的影响&#xf…

‘nodemon‘ 不是内部或外部命令,也不是可运行的程序

解决方法:使用 npx 临时运行 nodemon 如果你不想全局安装 nodemon,你可以使用 npx(npm 5.2 及以上版本自带)来临时运行 nodemon: npx nodemon server.jsnodemon正常配置 要在开发过程中实现每次修改 Node.js 代码后…