从Next的首页样式,探索3种CSS渐变艺术

前段时间觉得网站一个模块没有背景太光了,想加个背景,又没有找到合适的图片,直接加个颜色也不好看。在找灵感的时候,看到一个网站有种光晕效果: 又发现Next的默认部署首页也运用了类似效果,简洁美观: 最终采用了这种方案,并实现了Next首页渐变样式的demo,本质是给文字添加伪元素,运用渐变与filter的blur效果使之呈现出光晕效果。 codesandbox链接
过程中也学到了conic-gradient的使用方式,于是总结了CSS 提供的三种渐变类型:线性渐变(Linear Gradients)、径向渐变(Radial Gradients)和圆锥渐变(Conic Gradients),作为记录。

1. 线性渐变(Linear Gradients)

线性渐变沿一条直线逐渐变化颜色。它是最基本也最常用的渐变类型。

语法

css 复制代码
element {
    background: linear-gradient([angle or direction], color-stop1, color-stop2, ...);
}
  • 角度 :可以指定一个角度(如 45deg)。
  • 方向 :或者使用关键词,如 to top, to bottom, to left, to right
  • 颜色停靠点:定义渐变中使用的颜色和它们在渐变中的位置。

示例

css 复制代码
body {
    background: linear-gradient(to bottom, transparent, white);
}

此为demo的灰色背景色。渐变从顶部的透明色过渡到底部的白色(rgb(255, 255, 255)),并且有一个固体底色(rgb(214, 219, 220)),这是一种浅灰色。

这样设置后,body 元素将有一个从透明到白色的垂直渐变背景,底层颜色为浅灰色。

2. 径向渐变(Radial Gradients)

径向渐变从原点向外逐渐变化颜色,可以创建一种向外发散的效果,是从一个点向外扩散的渐变。

语法

css 复制代码
element {
    background: radial-gradient([shape] [size] at [position], color-stop1, color-stop2, ...);
}
  • 形状 :如 circleellipse
  • 大小 :如 closest-side, farthest-corner
  • 位置 :渐变的中心点,如 at center

示例

css 复制代码
div::before {
    radial-gradient(circle, white, transparent);
}

这里给文字的before创建了一个径向渐变,其形状是圆形,从中心的白色渐变到透明的伪元素。这种渐变效果通常用于创建聚光灯效果或柔和的背景。

3. 圆锥渐变(Conic Gradients)

圆锥渐变沿着圆形路径变化颜色,类似于色盘或饼图。

锥形渐变语法与径向渐变语法类似,但色标放置在渐变圆弧(圆的周长)周围,而不是从渐变中心出现的渐变线上。使用锥形渐变时,颜色会围绕圆心旋转,从顶部开始顺时针旋转。在径向渐变中,颜色从椭圆中心向各个方向向外过渡。

与线性渐变和径向渐变不同,线性渐变和径向渐变的色标是通过长度指定的,而锥形渐变的色标是通过角度指定的。单位包括角度 deg、梯度 grad、弧度 rad 和整圈的 turn

语法

css 复制代码
element {
    background: conic-gradient(from [angle] at [position], color-stop1, color-stop2, ...);
}
  • 角度 :设置开始的角度,如 from 0deg
  • 位置 :渐变的中心点,通常是 at center

示例

css 复制代码
div::after {
    background: conic-gradient(#bae6fd, #bfdbfe);
}

伪元素有一个圆锥形的背景渐变,颜色从浅蓝#bae6fd到蓝色#bfdbfe。

小结

在复杂的设计中,这些渐变可以结合使用,以创造更丰富和动态的视觉效果。例如,线性渐变可以用作背景,径向渐变可以用来突出显示特定元素,而圆锥渐变则可以用于创造有趣的图形效果。

相关推荐
社恐的下水道蟑螂22 分钟前
LangChain 进阶实战:从玩具 Demo 到生产级 AI 应用(JS/TS 全栈版)
前端·langchain·openai
Fairy要carry24 分钟前
项目01-手搓Agent之loop
前端·javascript·python
亲亲小宝宝鸭29 分钟前
Ctrl ACV工程师的提效之路:删掉项目中的冗余
前端
kyriewen33 分钟前
DOM树与节点操作:用JS给网页“动手术”
前端·javascript·面试
米饭同学i36 分钟前
基于腾讯云COS的小程序素材上传功能实现
前端·javascript·react.js
cxxcode36 分钟前
前端性能指标接入 Prometheus 技术方案
前端
辣椒炒代码37 分钟前
🚀 AI Agent 入门实战:基于 LangChain + MCP 构建智能导游助手
前端
ruanCat41 分钟前
前端工程化工具链从零配置:simple-git-hooks + lint-staged + commitlint
前端·git·代码规范
Jackson__1 小时前
AI时代,前端开发者到底还剩下什么?又该往哪里走?
前端·ai编程
C澒1 小时前
微前端容器标准化:容器标准化演进
前端·架构