打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
html图片要存在哪里,将html中的图片和html保存在一个文件里
我有个臭宝
于 2021-06-09 15:35:06 发布
988
 收藏
文章标签: html图片要存在哪里
html是超文本标记语言,里面显示的图片一般是指向另一个url的,但是,在我使用word的时候,我发现word文件里面是可以包含图片的,而且图片是保存在word文件里面的,这个就比html方便多了,当我保存html的时候,一般需要把相应的资源文件(图片、css、js)保存到一个目录里面,这个感觉麻烦。
css、js是可以直接写在html里面的,那么,能不能将图片数据也直接写到html里面的,去google百度了一下,还真有:
http://hi.baidu.com/guodong828/blog/item/7d86960acf23052bb0351d7c.html
需要注意的是:
1. IE到IE8都还不支持(IE9没试)
2. base64的数据膨胀系数为 1/7,即原来的7位的数据被编码成了1个字节
避免变成死链接,这里copy一份:
—————————————————————————
所谓"data"类型的Url格式,是在RFC2397中提出的,目的对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入。例如对于img这个Tag,哪怕这个图片非常非常的小,小到只有一个点,也是要从另外一个外部的图片文件例如gif文件中读入的,如果浏览器实现了data类型的Url格式,这个文件就可以直接从页面文件内部读入了。
data类型的Url格式早在1998年就提出了,时至今日,Firfox、Opera、Safari和Konqueror这些浏览器都已经支持,但是IE直到7.0版本都还没有支持,IE不支持的东西太多了,也不差这一个。
[小例子]
下面这个html代码可以在支持data类型Url的浏览器中运行,例如Firefox。运行后会看到一条蓝色渐变底色的标题。
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
.title {  background-image:url(data:image/gif;base64,R0lGODlhAQAcALMAAMXh96HR97XZ98Hf98Xg97DX97nb98Lf97vc98Tg973d96rU97ba97%2Fe96XS9
wAAACH5BAAAAAAALAAAAAABABwAAAQVMLhVBDNItXESAURyDI2CGIxQLE4EADs%3D);
background-repeat:repeat-x;
height:28px;
line-height: 28px;
text-align:center;
}
Hello, world!
这个渐变的蓝色底色实际上是用一个1×28的小图片通过横行重复(repeat-x)形成的。这个图片很小,不过104个字节,直接嵌入到html或css文件还是很合适的。
data格式的Url最直接的好处是,这些Url原本会引起一个新的网络访问,因为那里是一个网页的地址,现在不会有新的网络访问了,因为现在这里是网页的内容。这样做,会减少服务器的负载,当然同时也增加了当前网页的大小。所以对“小”数据特别有好处。
data类型Url的形式既然是Url,当然也可以直接在浏览器的地址栏中输入。
data:text/html,
Hello, world!
在浏览器中输入以上的Url,会得到一个加粗的"Hello, world!"。也就是说,data:后面的数据直接用做网页的内容,而不是网页的地址。
简单的说,data类型的Url大致有下面几种形式。
data:,data:text/plain,
data:text/html,
data:text/html;base64,
data:text/css,
data:text/css;base64,
data:text/javascript,
data:text/javascript;base64,
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据
因为Url是一种基于文本的协议,所以gif/png/jpeg这种二进制属于需要用base64进行编码。换句话说,引入base64以后,就可以支持任意形式的数据格式。下面是个png图片的例子,会在浏览器中显示一个Mozilla的图标。
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHd
hcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dP
FpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAE
EAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIG
TDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8v
Zswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJF
Pcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwT
AR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==
可以在Html的Img对象中使用,例如:
可以在Css的background-image属性中使用,例如:
div.image {  width:100px;  height:100px;  background-image:url(data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAF…);}
可以在Html的Css链接处使用,例如:
可以在Html的Javascript链接处使用,例如:
完整的语法定义在RFC中,完整的语法定义如下:
dataurl:= "data:" [mediatype] [";base64"] "," datamediatype  := [type"/"subtype] *( ";" parameter )data:= *urlcharparameter  := attribute "=" valueurlchar指的就是一般url中允许的字符,有些字符需要转义,例如"="要转义为"%3D",不过我测试下来,至少在Firefox里面,不转义也是可以的。
parameter可以对mediatype进行属性的扩展,常见的是charset,用来定义编码格式,在多语言情况下需要用到。例如下面的例子。
data:text/plain;charset=UTF-8;base64,5L2g5aW977yM5Lit5paH77yB这个例子会显示出"你好,中文!"。如果吧charset部分去掉,就会显示乱码,因为我用的是UTF-8编码。
Firefox有一个data类型Url的测试页面,列出了各种格式的data类型Url的测试Url,和测试结果说明。
base64编码和内容的隐秘
把二进制数据转换成为Base64不是什么难事,比如Total Commander就有这样的功能。还有一些在线资源:
http://www.greywyvern.com/code/php/binary2base64
http://www.kawa.net/works/js/data-scheme/base64-e.html
有些在线转换把base64里面的“=”转换成为%3D,这个在Url中和“=”是一样的,不转换也没什么问题。当然,这种Url还有一种隐秘的好处,就是将一些道貌岸然者不喜欢的东西,堂而皇之的放在页面上。
相关资源:html遍历文件夹图片文件ie_html遍历图片,html遍历文件夹-Web开发...
《新程序员》:云原生和全面数字化实践
50位技术专家共同创作,文字、视频、音频交互阅读
我有个臭宝
关注
0
0
0
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Data URI scheme
data url简介及data url的利弊 | 盛夏光年
!!!图片base64编码利器:在线 Data URI 生成工具 – Duri.me
使用nodejs将html5 canvas base64编码图片保存为文件
jquery常用方法总结
使用struts-menu制作树型菜单实例录像教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服