0

0

CSS颜色渐变之线性渐变_linear-gradient基础语法

P粉602998670

P粉602998670

发布时间:2026-02-22 18:28:46

|

143人浏览过

|

来源于php中文网

原创

linear-gradient() 的参数顺序不可颠倒,首参为方向值(如 to bottom 或 90deg),决定渐变轴线走向,后续颜色沿此轴分布;省略方向易致兼容问题,角度单位仅支持 deg/rad/grad/turn,位置值须带合法单位,透明度应直接用 rgba() 或 transparent,且需手动添加 ie10 及旧 android 的 fallback。

css颜色渐变之线性渐变_linear-gradient基础语法

linear-gradient() 的参数顺序不能颠倒

很多人写 linear-gradient(red, blue) 能生效,就以为方向永远是“从上到下”,其实这是默认行为,不是固定规则。真正起作用的是第一个参数——方向值,它决定了渐变轴线走向,后面的颜色列表只是沿这条线铺开。

常见错误现象:linear-gradient(#fff, #000) 在某些旧版 Safari 里显示为纯白,因为没声明方向,而该浏览器对无方向语法的解析不一致;更隐蔽的问题是,用 linear-gradient(90deg, red, blue)linear-gradient(to right, red, blue) 看似等价,但前者是角度值(以 x 轴正向为 0°),后者是关键词,两者在极小角度(比如 1deg vs to right)时渲染可能有像素级偏差。

  • 方向必须显式写,哪怕你想要“默认垂直”:用 to bottom 比省略更稳妥
  • 角度单位只支持 degradgradturn,不支持 px 或无单位数字
  • to top 等价于 180degto right90deg,别凭直觉猜反了

颜色停止点位置必须用合法单位或关键字

渐变里的每个颜色可以带位置,比如 red 20%blue 100px,但这个位置不是“离容器左边多远”,而是沿渐变轴线的距离。如果轴线是斜的,100px 就是斜向上的 100px,不是水平距离。

使用场景:做条纹背景时常用重复定位,比如 linear-gradient(45deg, #000 25%, transparent 25%) 配合 background-size: 20px 20px;但如果写成 #000 25(漏掉 %),Chrome 会忽略整条声明,Firefox 可能报警告但继续渲染——这种不一致最容易在联调时漏掉。

立即学习前端免费学习笔记(深入)”;

Wand AI
Wand AI

一个无代码AI平台,帮助组织快速创建基于AI的业务解决方案

下载
  • 位置值可以是 %pxem 等绝对/相对单位,也可以是 fromtocenter
  • 多个颜色停点不能重叠(如 red 10%, blue 10%),否则中间过渡会异常,部分浏览器直接截断后续颜色
  • 首尾停点不写位置时,默认为 0%100%,但中间颜色没写位置,浏览器会自动均分,这点常被误认为“智能计算”,其实是规范强制行为

透明度必须用 rgba() 或 transparent,别用 opacity

linear-gradient(rgba(0,0,0,0.5), rgba(255,255,255,0)) 是合法的,但 linear-gradient(black, white) 加一层 opacity: 0.5 到父元素上,效果完全不同:前者是颜色通道逐像素混合,后者是整个渐变层整体变淡,阴影、文字叠加时表现差异极大。

性能影响:用 transparent 替代低 alpha 的 rgba 颜色(比如 rgba(0,0,0,0.01))可减少合成层计算量,尤其在滚动区域里更流畅;但注意 transparent 本质是 rgba(0,0,0,0),不能指定色相,所以想实现“半透蓝色底+透明顶”就得老实用 rgba(0,128,255,0.7), rgba(0,128,255,0)

  • 不要混用 transparentrgba() 做相邻停点,比如 red, transparent, blue,中间会多出一段纯透明过渡,不是“红→蓝”的自然衰减
  • CSS 预处理器(如 Sass)里如果变量存的是 transparent,拼进 linear-gradient() 时要确保没被转成字符串字面量,否则运行时报错

IE 和旧 Android WebView 的 fallback 必须手动加

linear-gradient() 在 IE10+ 和 Android 4.4+ 才原生支持,但 IE10 只认 -ms-linear-gradient(),而且方向关键词不支持 to xxx 写法,只能用角度或 left/top 这类旧关键词。更麻烦的是,Android 4.0–4.3 的 WebView 把 linear-gradient(red, blue) 当无效声明,连 fallback 颜色都不渲染。

容易踩的坑:只写现代语法,靠 Autoprefixer 补前缀——它不会帮你加 IE 专用语法,也不会插回退色块;还有人用 background: #000; background: linear-gradient(...);,指望老浏览器吃第一行,但实际中若 CSS 文件被压缩或顺序调整,极易失效。

  • 最简 fallback:在 linear-gradient() 前加一行纯色声明,如 background: #333; background: linear-gradient(...);
  • 兼容 IE10:补 background: -ms-linear-gradient(top, #000, #fff);,注意它不支持 to bottom,只能用 topbottomleftright
  • 别依赖 Can I Use 上的“partial support”描述,Android 4.3 对 background-size + 渐变组合的支持是残缺的,实测需降级为图片

渐变本身没有“复杂逻辑”,但方向、位置、透明度、兼容这四块全是隐性耦合点——改一个参数,往往要同步检查其他三处是否还成立。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

978

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

801

2023.11.06

Sass和less的区别
Sass和less的区别

Sass和less的区别有语法差异、变量和混合器的定义方式、导入方式、运算符的支持、扩展性等。本专题为大家提供Sass和less相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.10.12

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

616

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

217

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1557

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

642

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

1006

2024.03.22

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1030

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.4万人学习

CSS教程
CSS教程

共754课时 | 35万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号