[译]图片优化 第五章:AlphaImageLoader(3)
作者:s5s5 来源:[米随随] s5s5 发布时间:2010-08-29 18:39:00
VML的透明效果
使用VML是另一种在IE中使PNG32透明的方法,它解决了几个问题:Alpha透明,性能和背景重复。可惜的是,它使用了非标准标签(也可用JavaScript来生成,如果你希望你的初始标签清爽)和私有CSS。这里有一个如何实现它的例子。
例如,你有一个 的DIV,你需要用VML的 :rect (或 :shape) 和 :fill 标签来把包含它,如:
<v:rect>
<v:fill type=”tile” src=”alphatest.png”>
<div> </div>
</v:fill>
</v:rect>
某些标签之前,你还需要声明VML命名空间:
<xml:namespace ns=”urn:schemas-microsoft-com:vml” prefix=”v” />
而在你的样式表,你需要:
v\:rect {
behavior:url(#default#VML);
width: 100px;
height: 100px;
display: block;
}
v\:fill {
behavior:url(#default#VML);
}
测试页显示100个VML rect元素装载用时0.094秒(几乎是使用滤镜速度的10倍)和使用4Mb内存(是使用滤镜的1/10)。
正如你可见,这种解决方案增加了更多私有标签和CSS,但它仍然是一个相对于AlphaImageLoader的“价格”高的解决方案,。
(感谢Drew Diller的这篇文章 及 HTML Remix,从中无意中发现了这个方案的另一作用,解决工作中的另一难题——通过使用VML实现圆角,如:snook.ca)
P.S…其他过滤器怎么样?
AlphaImageLoader不是唯一的滤镜。另一种经常使用的是opacity滤镜。
例如,对于50%不透明度开发人员使用以下属性:
opacity: 0.5(标准)
-moz-opacity: 0.5 (Mozilla的早期版本,在FF 0.9之前)
IE浏览器:filter: alpha(opacity=50)
在IE6做一个快速测试,该滤镜消耗低于AlphaImageLoader,但它仍然使页面慢,并且消耗了相同数量的内存。该测试使用颜色做背景,没有使用图片做背景,但使用图片的结果也大致相同。
测试页 | 时间(秒) | 内存(MB) |
---|---|---|
测试#3 – 100 Divs,不使用 opacity | 0.016 | 0.2 |
测试#4 – 100 Divs,使用 opacity | 0.093 | 46.7 |


猜你喜欢
- golang常用库:gorilla/mux-http路由库使用golang常用库:配置文件解析库-viper使用golang常用库:操作数据
- 1. 上下文管理器是什么?举个例子,你在写Python代码的时候经常将一系列操作放在一个语句块中:(1)当某条件为真 – 执行这个语句块(2
- 这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释:
- Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形
- text-overflow这个属性真让Firefox折腾,虽然之前有写过Firefox通过XUL实现text-overflow:ellips
- vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐使用axios。前段时间第一次在项目里用到vue,关于登陆问题
- 题主Vue小白,入门demo时想在其中使用jQuery(当然可能是不推荐的做法哈,毕竟俩儿的风格不一样,但万一你就需要呢 _^ ^_),结果
- 本文实例讲述了PHP5.6读写excel表格文件操作。分享给大家供大家参考,具体如下:测试环境:php5.6.24.这块没啥兼容问题。需要更
- importlib 模块的作用模块,是一个一个单独的py文件 包,里面包含多个模块(py文件)动态导入模块,这样就不用写那么多的import
- 一、MySQL数据库模块的安装和连接1、 PyMySQL模块的安装pip install pymysql2 、python连接数据库impo
- 本文实例为大家分享了Python+Opencv实现图像匹配功能的具体代码,供大家参考,具体内容如下1、原理简单来说,模板匹配就是拿一个模板(
- dict是python中的常用数据结构,应该尽量掌握其使用方法字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>
- Python是面向对象(OOP)的语言, 而且在OOP这条路上比Java走得更彻底, 因为在Python里, 一切皆对象, 包括int, f
- 1、两个函数介绍总得来说,connectedComponents()仅仅创建了一个标记图(图中不同连通域使用不同的标记,和原图宽高一致),c
- 在Goland中,如果 import 了包,但在代码中没有使用,会自动帮你移除这个包的 引用有可能是习惯问题,每次写代码都习惯 先impor
- tpch是TPC(Transaction Processing Performance Council)组织提供的工具包。用于进行OLAP测
- 1. 环境准备1.1 安装pillow 和 pytesseractpython模块库需要 pillow 和 pytesseract 这两个库
- 在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并
- 一、继承与java的继承不同python支持多继承,如Person类同时继承Animal类和Species类可以这样写:class Anim
- 因为这两天在学习深度学习需要用到ubuntu+python3.6版本,所以就按照网上的教学安装,但是ubuntu16.04自带的是pytho