时间: 2011-09-14 / 分类: WEB后端编程 - 开发与实践 / 浏览次数: / 1 个评论 发表评论
CSS Hack浏览器兼容IE6+IE7+IE8+IE9+FF
项目前端开发的架构
WEB前端开发中的一些编程风格和书...
黄金分割与摄影构图
12条经典摄影技巧
 Hack就是指我们为了兼容各浏览器,而使用的特别的CSS定义技巧。
我们在用DIV+CSS制作网页时,由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等对CSS的支持及解析结果不一样,导致生成的页面效果不一样,得不到我们所需要的页面效果。这时候我们就需要针对不同的浏览器去写不同的 ,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS代码的过程,就叫CSS 
主要以:6++++FF为主要研究对象

(1)*:  +IE7都能识别*,而标准浏览器FF+IE8是不能识别*的;
(2)!important: 除IE6不能识别 !important外,  +IE8+IE7都能识别!important ;
(3)_ : 除IE6支持_ 外,  +IE8+IE7都不支持_;
(4)\9:所有IE浏览器都识别(IE6、IE7、IE8、IE9)
示例:
(1)区别FF(IE8)与IE6 IE7
backgorund:orange; FF和IE8背景色将为橘黄色
*backgorund:red;   IE6和IE7背景色将为红色
(2)区别FF(IE8)与IE6与IE7
background:orange;   FF和IE8背景色将为橘黄色
*background:red !important;  IE7背景色将为红色
*background:blue;     IE6背景色将为蓝色
(3)区别FF(IE8)与IE6与IE7
background:orange;        FF和IE8背景色将为橘黄色
*background:red;          IE7背景色将为红色
_background:blue;         IE6背景色将为蓝色
(4)区别FF与IE6 IE7 E8
color:gray;       FF等非IE浏览器字体色将为灰色
color:red\9;     IE8 IE9字体色将为红色
*color:green;     IE7字体色将为绿色
_color:blue;     IE6字体色将为蓝色
提示:CSS HACK书写顺序:先写FF等非IE浏览器所需样式,其次写IE8所需样式,接着是IE7的,再接着才是IE6的!
总结:实际运用中!important稍微有点长,只要记住"*"和"_"应该足够区别于FF(IE8)与IE6与IE7了.
再来一个例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <style type="text/css">
 body{
	background-color: #00CC;	/**/
	background-color: #FF0000\0;	 /*IE8+IE9*/
	background-color: #FFCC00\9\0;	/*IE9*/
	*background-color: #000000;	/*IE7*/
	_background-color: #0000FF;	/*IE6*/
}
  </style>
 </head>
 <body>
 fdafds
 </body>
</html>
注意写hack的顺序,其中:
background-color:red\0;IE8和IE9都支持;
background-color:blue\9\0; 仅IE9支持;
  站点地图 | 关于我 | 返回顶部
Copyright © 2001-2013 { amiku.cn | zhangshunjin.com }. Powered by 

阿米酷

张顺金


浙ICP备11002820号-1