从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。

小结

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

相关推荐
mapbar_front17 分钟前
react项目开发—关于代码架构/规范探讨
前端·react.js
二木一夕23 分钟前
Vue 3 的组合式 API和传统选项式 API区别(vue2转vue3,两者差异)
前端
LuckySusu25 分钟前
【vue篇】Vue 项目中的静态资源管理:assets vs static 终极指南
前端·vue.js
LuckySusu26 分钟前
【vue篇】Vue.delete vs delete:数组删除的“陷阱”与正确姿势
前端·vue.js
LuckySusu27 分钟前
【vue篇】Vue 模板编译原理:从 Template 到 DOM 的翻译官
前端·vue.js
小菜摸鱼30 分钟前
Node.js + vue3 大文件-切片上传全流程(视频文件)
前端·node.js
LuckySusu33 分钟前
【vue篇】Vue 2 响应式“盲区”破解:如何监听对象/数组属性变化
前端·vue.js
LuckySusu33 分钟前
【vue篇】Vue Mixin:可复用功能的“乐高积木”
前端·vue.js
洋不写bug1 小时前
前端环境搭建,保姆式教学
前端
需要兼职养活自己1 小时前
react高阶组件
前端·react.js