不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。这里我们就需要注意CSS书写技巧了。
这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。
由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。
比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法
CSS书写技巧-1:!important
!important作用是提高指定样式规则的应用优先权。
IE7以及所有标准浏览器能识别!important
区别IE6与IE7与其他浏览器
- .browserTest
- {
-
border:20px solid #60A179!important;
-
border:20px solid #00F;
-
}
在Mozilla中或者IE7浏览时候,能够理解!important的优先级,因此显示#60A179的颜色:
在IE6中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色:
CSS书写技巧-2:*
IE都能识别*;标准浏览器(如火狐)不能识别*
区别IE6与火狐
- .browserTest
- {
-
border:20px solid #60A179;
-
*border:20px solid #00F;
-
}
区别IE7与火狐
- .browserTest
- {
-
border:20px solid #60A179;
-
*border:20px solid #00F;
-
}
区别IE7,IE6与火狐
- .browserTest
- {
-
border:20px solid #60A179;
-
*border:20px solid #00F!important;
-
*border:20px solid ###;
-
}
CSS书写技巧-3:_
IE6支持下划线,IE7和firefox均不支持下划线
区别IE7,IE6与火狐
- .browserTest
- {
-
border:20px solid #60A179;
-
*border:20px solid #00F;
-
_border:20px solid ###;
- }
-
/*不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面*/
CSS书写技巧-4:*+html 与 *html
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签
- .browserTest{width:120px;}/*FireFoxfixed*/
-
*html.browserTest{width:80px;}/*ie6fixed*/
-
*+html.browserTest{width:60px;}/*ie7fixed*/
注意:
*+html 对IE7的HACK 必须保证HTML顶部有如下声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
/*****************************************************************************/
/*****************************************************************************/
以下是一些常用的CSS兼容技巧
1)火狐下给div设置padding后会导致width和height 增加, 但IE不会.(可用!important解决)
2)垂直居中,将 line-height设置为当前div相同的高度, 再通过vertical-align: middle;( 注意内容不要换行)
3)水平居中,margin:0 auto;(当然不是万能)
4)若需给a标签内内容加上样式, 需要设置 display: block;(常见于导航标签)
5)浮动IE产生的双倍距离
在IE下,当一个div设置了float后,然后给他设置margin,就会出现加倍的margin,解决的办法是给div设置
- display:inline。
- <divid=”float”></div>
- 相应的css为
-
#float
- {
-
float:left;
-
margin:5px;/*IE下理解为10px*/
-
display:inline;/*IE下再理解为5px*/
-
}
Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);
6)IE和FF对盒模型的解释区别
-
#browserTest{width:650px!important;width:648px;padding-left:2px;background:#fff;}
browserTest显示的宽度是650px;
IE Box的总宽度是:width+padding+border+margin宽度总和;
FF Box的总宽度就是:width的宽度,padding+border+margin的宽度在含在width内。
如果有BOX{WIDTH:"300"; PADDING:"5PX";}
则BOX在IE的宽度应该为:310
而在FF的宽度则是300
所以在BOX有填充的情况下应该这样使用
BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}
7)ul标签在FF下面默认有list-style和padding, 最好事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)
8)作为外部wrapper的div不要定死高度, 最好还加上 overflow: hidden;以达到高度自适应;
9)页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个, 而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:
然后CSS这样设计:
-
#container{min-width:600px;width:expression(document.body.clientWidth<600?"600px":"auto");}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
CSS书写技巧-10:万能float闭合
将以下代码加入Global CSS 中,给需要闭合的div加上
- <style>
-
/*ClearFix*/
- .clearfix:after
- {
-
content:".";
-
display:block;
-
height:0;
-
clear:both;
-
visibility:hidden;
- }
- *html.clearfix{
-
height:1%;
- }
- *+html.clearfix{
-
height:1%;
- }
- .clearfix
- {
-
display:inline-block;
- }
-
/*HidefromIEMac*/
-
.clearfix{display:block;}
-
/*EndhidefromIEMac*/
-
/*endofclearfix*/
- </style>
-
/**********************************************/
-
<divid="wrap">
-
<divclass="column_left">
-
<h1>Floatleft</h1>
- </div>
-
<divclass="column_right">
-
<h1>Floatright</h1>
- </div>
- </div>
-
#wrap{border:6px#cccsolid;overflow:auto;_height:1%;}
-
.column_left{float:left;width:20%;padding:10px;}
-
.column_right{float:right;width:75%;padding:10px;border-left:6px#eeesolid;}
来源:常用的CSS兼容技巧 | web启点
分享到:
相关推荐
本文收集整理了IE7,6与Fireofx的CSS兼容性处理技巧,供大家参考。 CSS兼容常用技巧
标题中的“让CSS兼容IE和Firefox的技巧集合”是指在网页设计中,针对Internet Explorer(IE)和Firefox这两种浏览器之间CSS样式兼容性问题的解决策略。描述中的“嘿呌,IE不再是个bug”暗示了这些技巧能帮助开发者...
由于不同浏览器对CSS的支持程度有所差异,因此掌握一定的CSS兼容技巧是非常重要的。 #### CSS兼容性的概念 CSS(Cascading Style Sheets)是一种用于描述HTML文档外观的语言,它可以用来控制网页中的文本格式、图片...
### CSS兼容性技巧整理 #### 一、概述 在网页设计和前端开发中,不同浏览器对CSS的支持程度存在差异,特别是在早期版本的Internet Explorer(如IE6和IE7)与现代浏览器(如Firefox)之间。这些差异可能导致布局...
解决CSS兼容性问题的两种常见方法是: 1. 使用`!important`标记:在CSS中,`!important`可以强制应用某个样式,但这可能导致优先级混乱。例如: ```css #wrapper { width: 100px !important; /* IE7+FF */ ...
以上只是部分经验总结,实际工作中的CSS兼容性问题可能更为复杂,需要开发者具备扎实的CSS基础,灵活运用各种技巧和工具,以确保网站在多种环境下都能正常运行。不断学习和实践,是解决这些问题的最佳途径。
### CSS兼容IE和Firefox的技巧集合 在网页开发过程中,CSS的兼容性一直是开发者们头疼的问题,尤其是在处理不同浏览器如Internet Explorer(IE)和Mozilla Firefox之间的差异时。本文旨在总结一系列有效的技巧,...
总的来说,处理HTML标签和CSS的兼容性问题需要我们了解各种浏览器的特性支持情况,适时使用前缀、渐进增强、特性检测等技巧。随着技术的发展,大多数现代浏览器对HTML5和CSS3的支持越来越好,但为了保证广泛兼容性,...
总的来说,"IE与Firefox的CSS兼容大全"这个资源包含了大量关于如何在两者之间实现一致显示的技巧和解决方案,对于开发者来说是一份非常有价值的参考资料。通过学习这份教程,开发者能更好地理解这两种浏览器的差异,...
本篇文章主要探讨了一些针对 IE7、IE6 和 Firefox 的 CSS 兼容性技巧。 首先,我们来看一个著名的 CSS 过滤器——星号 *Html HACK。这个技巧利用了 IE6 及更早版本的一个特性,它们有一个匿名的根元素包围着 Html ...
### CSS兼容问题详解 在网页开发过程中,不同的浏览器由于对CSS的支持程度不同,常常会导致页面在各个浏览器中的表现不一致,这就是所谓的“CSS兼容性问题”。本文将详细探讨几个常见的CSS兼容性问题及其解决方法。...
本文档将详细介绍几种常用的CSS兼容性解决方案,包括CSS Hack技术、清除浮动方法以及解决特定浏览器问题的技巧。 #### 1. CSS Hack 技术 CSS Hack是一种特殊的技术,用于解决不同浏览器间CSS支持差异的问题。它...
CSS技巧汇总---div+CSS浏览器兼容问题整理(IE6.0、IE7.0 ,ie8 , FireFox...).pdf
#### 一、CSS兼容性的基本概念 在Web开发中,浏览器兼容性一直是前端开发者面临的挑战之一。不同的浏览器对于CSS的支持程度各不相同,这可能导致同一段代码在不同浏览器下的显示效果存在差异。因此,在进行网站设计...
在构建网页布局时,`div+css`是一个常见的方法,但它在不同的...通过遵循以上技巧和最佳实践,你可以创建一个在所有主流浏览器中都能良好表现的`div+css`布局。记住,持续测试和调整是确保跨浏览器兼容性的关键步骤。
本文主要针对这些差异提供了一些实用的技巧,帮助开发者解决常见的CSS兼容性问题。 1. **垂直居中问题**:在CSS中,实现div的垂直居中可以通过设置`vertical-align:middle`和`line-height`属性。例如,将`line-...