总结(二)

目录
  • readonly
  • html标签属性
  • meta 标签
  • 解决css hack
  • IE8 下的css3
1.readonly
(1)readonly 属性规定输入字段为只读
(2)只读字段是不能修改的。但用户仍然可以使用 tab 键切换到该字段,还可以选中或拷贝其文本。
(3)可以防止用户对值进行修改
2.html 属性
<html xmlns:wb="http://open.weibo.com/wb" class="no-js" lang="zh">
  • dir:规定元素内容的文本方向。
  • lang:规定元素内容的语言。
  • xmlns: 微博关注按钮 需要增加 XML命名空间
  • class: no-js 是配合Modernizr 一起使用的类名

Modernizr 是一个 javascript 库,检查你的游览器是否支持 CSS3 或者 HTML5 的特性而自动添加一些类名(class)到 <html> 并 替换掉原来的 .no-js

简单来说,Modernizr 就是一个CSS3/HTML5 的测试器,你需要测试什么,这可以到它的官方网站配置,选择自己需要测试的元素。

还有让你的游览器支持 HTML5 中的新的标签 官方网站 官方网站

关于Moderniz 的具体使用方法和解释,请参照大神的文章:

关于Modernizr

3.meta
<meta http-equiv="x-ua-compatible" content="ie=edge">

X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的。 通过在meta中设置X-UA-Compatible的值,可以指定网页的兼容性模式设置。

在网页中指定的模式优先权高于服务器中(通过HTTP Header)所指定的模式。 兼容性模式设置优先级:

meta tag > http header

IE=EDGE

对IE使用最高模式渲染

即会强制浏览器按照最新的标准去渲染。就像在Google’s CDN使用最新版本的JQuery一样,这是按照最新版本,但也可能由于没有固定的版本而破坏你的布局。

 <meta name="msapplication-config" content="browserconfig.xml" />

Windows-8 / MSIE-11引入了Tiles,因为这样的服务器管理员可能已经开始在其服务器日志中看到HTTP 404错误,因为它试图在网站域的根目录中查找“browserconfig.xml”文件。

4.解决css hack
  • 条件注释法
<!--[if lt IE 9]>
   这段文字只在版本小于IE9浏览器显示
  <![endif]-->
注:IE10+已经不再支持条件注释)
  • 属性前缀法
// IE6~7为红色,其他为蓝色
div{
  width:500px;
  height:500px;
  color:blue;
  *color:red;
}
IE6~IE10都认识"\9",但firefox前述三个都不能认识。
  • 选择器前缀法
  1. IE6能识别*html.class{}
  2. IE7能识别*+html.class{} 或者 *:first-child+html .class{}。
  • 使用兼容工具
html5shiv.js

在IE6~8(不支持html5标签)上模拟html5标签

respond.js

在IE6~8(不支持css3)上模拟CSS3 Media Queries

CSS Reset和Normalize.css

在默认的HTML元素样式上提供了跨浏览器的高度一致性。

Modernizr.js

他会为浏览器的html标签生成一批的css的class名称,标记当前浏览器支持和不支持的特性。我们利用html标签上的类名,就可以为不同版本的不同浏览器添加兼容样式

参考:

查询属性兼容性

史上最全的CSS hack方式一览

4.IE8 下的css3
(1) transform
我们都知道,transform是css3推出的变形属性,包括斜切、平移、缩放、旋转等,配合css3的动画,可以做出很多炫酷的效果。
但会有公司项目要求让transform兼容到IE8浏览器。明显的,IE8是不支持css3的,但是IE浏览器都一个filter滤镜,可以实现类似的效果。
使用矩阵变形 Matrix
 transform: rotate(40deg);
 -o-transform: rotate(40deg);
 -webkit-transform: rotate(40deg);
 -moz-transform: rotate(40deg);
 filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7660444431189777, M12=-0.6427876096865394, M21=0.6427876096865398, M22=0.7660444431189779)}
参考:关于矩阵
(2) background
同样利用filter滤镜
  background: rgba(0, 0, 0, .5);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000,endColorstr=#88000000);

background: url('img/aa.png') no-repeat;
background: none\9;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.img/aa.png',sizingMethod='scale');
background-size: 34px 34px;
-moz-background-size: 34px 34px;
-webkit-background-size: 34px 34px;

扩展:兼容html5 标签

使用html5.js
<!-- 条件引入html5.js -->
<!--[if lt IE 9]>
    <script src="js/html5.js"></script>
<![endif]-->

猜你喜欢

转载自my.oschina.net/u/3662721/blog/1796948