ie9及更早版本完全无视linear-gradient()语法,仅支持background-color和background-image(仅url());回退色必须前置,filter模拟渐变会破坏border-radius,fallback色需人工校验。

IE9及更早版本根本不认识linear-gradient()语法
这不是“不兼容”,而是彻底无视——IE9及以下浏览器遇到background: linear-gradient(...)会直接跳过整条声明,就像它不存在一样。它只认background-color、background-image(且仅支持url()),对函数型图像值零解析能力。所以你看到的“空白”或“继承父背景”,不是渐变加载失败,是根本没进入渲染流程。
background简写顺序写反会导致整个背景丢失
很多人把回退色写在渐变后面:background: linear-gradient(to bottom, #4a6fa5, #2c4d75), #4a6fa5;——这在IE9里反而会让background变成无效值,最终背景全丢。必须把纯色放前面:background: #4a6fa5; background: linear-gradient(to bottom, #4a6fa5, #2c4d75);。旧浏览器只执行第一条有效声明,第二条被忽略;现代浏览器覆盖第一条。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
IE8–IE9只能靠filter模拟渐变,但会破坏border-radius
用filter: progid:DXImageTransform.Microsoft.gradient(...)确实能骗出渐变,但它是个独立渲染层,完全不参与CSS盒模型计算。一旦加了这个滤镜,border-radius就失效,圆角区域会露出直角底色。解决方案是套一层父容器:.wrapper { border-radius: 8px; overflow: hidden; },把滤镜和渐变都写在子元素上。别指望background-clip或-ms-filter单独修复——它们在IE9里都不起作用。
PostCSS等工具生成的fallback色经常“不对味”
工具常取渐变起点色当回退色,但设计稿里起点可能是高光,真正要兜底的是中间调或终点色。比如linear-gradient(to bottom, #fff 0%, #4a6fa5 100%),工具生成background: #fff,结果IE9按钮变成刺眼白底,跟设计稿完全脱节。更麻烦的是,遇到repeating-linear-gradient或含rgba()的渐变,多数插件直接不生成fallback,留空——你得手动补,且必须真机测试,因为模拟器无法还原IE9的像素级裁切和alpha混合缺陷。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










