ie8及以下需用alphaimageloader滤镜实现背景铺满:先写filter(src为html相对绝对路径、sizingmethod=scale、position:relative),再写background-size:cover,顺序不可颠倒。

IE8及以下如何让背景图铺满容器
IE8 及更早版本根本不解析 background-size,写 background-size: cover 等于白写。唯一可行路径是微软私有滤镜 AlphaImageLoader,但它不是“设背景”,而是把图片当内嵌元素加载进容器里。
- 必须给容器加
position: relative,否则滤镜定位错乱 -
sizingMethod必须显式设为scale(默认是image,只显示左上角) -
src路径是相对于 HTML 文件的 URL,不是 CSS 文件——这是 90% 的人踩坑的位置。比如 HTML 在/admin/index.html,图片在/img/bg.jpg,就得写src='/img/bg.jpg',不能写src='img/bg.jpg' - 它不支持
background-position、background-repeat,也不支持 PNG alpha 通道
filter 与 background 属性共存时的顺序陷阱
不能把 filter 和 background 简写混写在同一声明块里——background 会清空前面已设的 filter。更关键的是:IE8 只跳过不认识的属性,不报错;而现代浏览器会按顺序覆盖。所以安全写法只有一条:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 先写 IE 滤镜:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/img/bg.jpg', sizingMethod='scale'); - 再写标准属性:
background: url('/img/bg.jpg') no-repeat; background-size: cover; - 绝对不能反过来,也不能用
background简写一次性覆盖所有背景相关属性
Chrome/Safari 旧版中 filter: blur() 不生效怎么办
Chrome 18–52、Safari 6–9 默认禁用 CSS Filter Layout 特性,filter: blur(2px) 直接被忽略,不是语法错,是渲染引擎没开开关。
- 必须同时写前缀和标准属性:
-webkit-filter: blur(2px); filter: blur(2px); - 别用
@supports (filter: blur(0))做检测——旧 Safari 会误报支持;改用 JS:window.CSS && CSS.supports('filter', 'blur(0)') - IE 全系和 Edge 12–15 完全不认
filter,连前缀都不解析,这时候得换方案:SVG 滤镜或 Canvas 合成,polyfill 是唯一能兜底的选择
要不要引入 CSS-Filters-Polyfill
如果你的目标用户里还有 IE6–IE9,或者你无法控制部署环境(比如企业内网长期停留在 IE8),那 polyfill 不是“可选”,是刚需。它把 filter: grayscale(1) blur(3px) 自动转成 SVG 或 DirectX 滤镜,且支持声明式写法。
- 引入方式很简单:
<script src="/lib/css-filters-polyfill.js"></script>,然后照常写标准 CSS - 注意它不支持 IE10+,因为微软在 IE10 中移除了旧滤镜支持,但此时浏览器已原生支持
filter,无需 polyfill - 真正难处理的不是 polyfill 本身,而是它和已有
transform、will-change或复杂 stacking context 混用时,可能触发 IE 渲染崩溃——这种问题往往只在真实内网环境复现,本地测不出来
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










