北京 上海 广州 深圳 >>
网站建设
我们的优势
我们的报价
联系我们
首 页 关于我们 建站套餐 网站优化 网站推广 解决方案 成功案例 客服中心 建站问题 推广知识 建站知识  
网站建设
  网站建设套餐
  网站建设流程
  功能模块介绍
  网页设计报价
  网站改版设计
  网站售后服务
 
最新客户
   
网站推广
推广知识
 
· 浅谈造成网站关键字排名
· 浅谈最近百度调整对网站
· 分析:站内锚文本链接使
· 细节成就权重 权重决定
· 根据百度有效反链数据
· 详解SEO策略制定中的
· 关键词排名优化之挖掘长
 
建站技术知识
 
 
前端开发必须知道的CSS(1):CSS Hack

  在开发中,我们常会遇到某些css在IE中显示正常,但是在Firefox中显示不是我们所希望的,或者在Firefox中正常而在IE中不是我们所要。由于不同浏览器对CSS的支持和解析不一样,或者CSS优先级不一样,所以我们常针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,这就是CSS Hack。也可以说CSS Hack就是那些能区别不同浏览器的字符,如!important, * , _ 等。在看了一些网上的相关知识后和实践后,作下总结。

各浏览器的CSS Hack

在IE7发布之前,区分IE与FireFox(OP等与FireFox一样),可以靠!important。譬如body{background-color:green !important;background-color:blue;} ,在IE6中打开页面,body的背景色是蓝色,因为IE6不识别!important,而Firefox识别了!important,所以在Firefox中背景色是绿色,含有!important的样式要写在前面,因为如果2个样式都能识别,后面的会覆盖前面的。

而杯具的IE7识别了!important,所以不能仅靠!important来区分Firefox了。

另外,对*号的解释,网上有些是这样说的:*: Html 元素被认为是网页上的第一个元素,即根元素。但是,IE 的所有当前版本有一个匿名的根元素,它包围着Html 元素,即*。

IE6 IE7都能识别*,但FF不能识别。IE6支持下划线,IE7和firefox均不支持下划线。而*+只有IE7才支持。

区别FF与IE6: 
        background-color:green !important;*background-color:blue;

区别IE7与IE6: 
        background-color:green !important;background-color:blue;

区别IE7与FF: 
        background-color:orange; *background-color:blue;

区别FF,IE7,IE6: 
        background-color:orange;*background-color:green !important;*background-color:blue;

 或者background-color:orange;*background-color:green;_background-color:blue;

然后,IE8又出来了,而唯一被IE8识别的是\0。

于是:

.test{
color:#000000;                  /* FF,OP支持 */
color:#0000FF\0;          /* IE8*/
*color:#FFFF00;                 /* IE7支持 */
_color:#FF0000;               /* IE6支持 */
}

书写顺序:

FF-IE8-IE7-IE6

应用:

IE与Firefox等浏览器对容器width的解释不同,在firefox,opera等中的宽度只包含容器中内容的宽度。而Internet Explorer的width则是指整个容器的宽度,包括内容,padding ,border-width。

 div.box{

 border-width:50px;

   padding:50px;

 width:200px; 
   height:200px; 
   *width:400px;     /*加*号被所有IE识别*/
   *height:400px;
   }

这样就使得在IE和FF中内容的宽度高度都是200px。

针对此列,还有另外种解决办法:

只要在DIV外面再添加一个无width定义的wrapper层,在wrapper中定义padding和border-width,然后在本DIV中定义width
如:
#wrapper { padding: 50px; border-width: 50px; }
#content { margin: 0px; width: 200px; }
<div id="wrapper">
  <div id="content">
    ...
  </div>
</div>

这样内容就肯定是200px了,外面的padding和 border-width也正常显示,主要就是将在不同浏览器会影响width的padding和 border-width抽离到内容层外面的层,从而不再影响width。

<
 
在线咨询
     
 
QQ咨询
旺旺咨询
 
MSN咨询
  点击开始咨询 点击开始咨询
  点击开始咨询 点击开始咨询
建站服务
       经济型网站设计套餐 ¥2580
       企业型网站设计套餐 ¥3980
       豪华型网站设计套餐 ¥6580
       商城型网站设计套餐 ¥7580
       定制型网站设计套餐 ¥面 谈
       智赢型ABC ¥1580/1980
虚拟主机
       普及型(电信)350元/年
       经济型(电信)650元/年
       普及A型(双线)500元/年
       普及B型(双线)900元/年
       外贸型(国外) 550元/年
       企业型(国外) 1050元/年
我要订购主机>>       
域名注册
     国际顶级域名.com 100元/年
     国际顶级域名.net 100元/年
     国际顶级域名.cc 380元/年
     国际顶级域名.org 180元/年
     中国顶级域名.cn 100元/年
     中国顶级域名.com.cn 100元/年
     中文域名.中国.公司 280元/年
我要注册域>>       
 友情链接:湖南网站建设 广州网站建设 上海网站建设 广州网站建设公司 中山网站制作 网页设计网 网页设计公司 网站制作 网站建设 建网站公司 珠海网站建设 赢在网络
 业务范围: 广州虚拟主机 广州网站设计 广州网页制作 广州网页设计 深圳网站建设 珠海网页设计 中山网页制作 汕头网站设计 番禺网页制作 南海网站建设 肇庆网页制作

联系我们 | 建站套餐 | 网站建设 | 建设知识 | 服务报价 | 解决方案 | 成功案例 点击开始咨询 点击开始咨询
Copyright 2005-2020 win580.com rights reserved 电话:020-87518743 87518740  传真:020-87518740
地址:广州市天河区中山大道西8号(天河商贸大厦)1304室  邮编:510620
E-mail:Win580@126.com