惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
博客园 - 叶小钗
雷峰网
雷峰网
小众软件
小众软件
量子位
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
G
Google Developers Blog
博客园_首页
博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
github上html5shiv项目readme.md部分的翻译 « 张鑫旭-鑫空间...
张鑫旭,zhangxinxu · 2013-02-20 · via 张鑫旭-鑫空间-鑫生活

HTML5 Shiv这厮

HTML5 Shiv这厮可以让具有考古价值的Internet Explorer向HTML5相关元素跪拜求饶,同时为IE6-9, Safari 4.x (以及iPhone 3.x), 以及Firefox 3.x提供基本的HTML5样式。

这些文件做什么的?

html5shiv.js

  • 包含基本的createElement()“迷惑”技术,即使用document.createElement以及document.createDocumentFragment的运行悄悄进行动态的修改。同时还为HTML5元素元素提供基本的样式(如,对IE6~9应用article,...,section{display:block})等。

html5shiv-printshiv.js

  • 上面的都有,同时含有一种机制,允许IE6-8浏览器在打印的时候HTML5元素被样式化以及包含子元素。

现在谁能让我疯狂?

HTML5 Shiv由Alexander Farkas, Jonathan Neal, Paul Irish维护,John-David Dalton做了许多贡献。也收到Modernizr以及其他两个google code项目的垂青, html5shiv以及html5shim, 由Remy Sharp维护.

如果这些实现有任何问题,你可以在这里报告!:)

关于HTML5 Shiv的完整故事以及所有参与其诞生的人,可以阅读“HTML5 Shiv的前世今生”,//zxx: 我查了下,有中文相关文章“HTML5 Shiv 的一些趣事

//zxx: 总之,github是目前最新最有谱的地方,有什么问题之类的就来这里吧~~标题的意思是维护人员希望大家可以提出点新颖的东西来激发其久违的激情与干劲。

HTML5 Shiv API

HTML5 Shiv以简单的插入式方案工作。在大多数情况下,没有必要去配置HTML5 Shiv或者使用HTML5 Shiv提供的方法。

html5.elements选项

elements选项为空格分隔的字符串或数组,其描述了完整的需要兼容的元素列表。

在引用html5shiv.js之前配置elements.

//创建一个全局的可选HTML5对象
window.html5 = {
  'elements': 'mark section customelement' 
};

在引用html5shiv.js之后配置elements.

//改变html5shiv可选对象
window.html5.elements = 'mark section customelement';
//重调用`shivDocument`方法
html5.shivDocument(document);

html5.shivCSS

如果shivCSS被设置为true, 则会给章节元素(如section, article等~)添加基本的些样式(大部分是display:block)。在大多数情况下,网页作者应该在正常的样式表中包括这些基本样式以确保旧的浏览器在没有JavaScript的时候支持(如FireFox 3.6)。

shivCSS默认为true, 可以被设置为false, 只能在html5shiv.js引用之前:

//创建一个全局的html5选项对象
window.html5 = {
    'shivCSS': false
};

html5.createElement( nodeName [, document] )

html5.createElement方法创建一个“光环”元素,即使shivMethods设置为false.

var container = html5.createElement('div');
//container被“猪脚光环”了,因此我们可以使用`innerHTML`添加HTML5元素。
container.innerHTML = '<section>This is a section</section>';

html5.createDocumentFragment( [document] )

html5.createDocumentFragment方法创建一个“光环”的文档片段,即使shivMethods设置为false.

var fragment = html5.createDocumentFragment();
var container = document.createElement('div');
fragment.appendChild(container);
//fragment被“猪脚光环”了,因此我们可以使用`innerHTML`添加HTML5元素。
container.innerHTML = '<section>This is a section</section>';

HTML5 Shiv已知问题及限制

  • shivMethods选项(覆盖document.createElement)以及html5.createElement创建元素,不是分离的,其公用父节点(另请参阅问题#64)。
  • 节点克隆问题目前HTML5 Shiv未处理。HTML5元素可以被动态创建,但是在所有情况下都不能被克隆。
  • 打印版本的HTML5 Shiv在打印的时候不得不修改了打印样式以及整个DOM. 在复杂站点,或很多打印样式的情况下,可能会造成性能以及/或样式问题。一个可行的解决方案是HTML5 Shiv的htc-branch, 其使用了其他技术实现IE8下的打印样式。

其他的HTML5元素项目

  • 最初的概念以及项目协作故事已经在“HTML5 Shiv的前世今生”中提及。
  • Jon Neal的IEPP(IE print project), 解决了最初html5shiv的打印问题。其被并入了html5shiv.
  • Shimprove, 2010年4月,修补cloneNode以及createElement,后来并入了html5shiv.
  • innerShiv, 2010年8月JD Barlett推出,解决了DOM中动态添加HTML5元素问题。jQuery增加了支持,使得innerShiv显得多余,加上html5shiv解决了相同的问题,因此,这个项目就到头了~
  • Google Code上html5shimhtml5shiv站点由Remy Sharp维护,与本html5shiv项目有着完全一致的分发点。
  • Modernizr被和html5shiv同样的人发展着,因此modernizr.com包含最新版本的任何创建的自定义。
  • html5shiv repo现在包含针对上面库所寻找的所有边界情况的测试,无论在开发和生产中,都经过了广泛的测试。

html5shiv详细更新日志可访问。

为什么叫做shiv?

shiv这个术语来自John Resig, 其使用这个术语是因为其地方意思:一个尖锐的对象,就像刀那样的武器,针对IE浏览器的。现在,有点小改变的是John实际上拼写错误了,其本想使用shim这个词,在计算机用语中,表示一个兼容的应用环境。不过从后来也可以理解的解释来看,John是个众所周知的“顽童”