CSS兼容性问题 && CSS HACK

 以前做网页的时候,只考虑 IE6 和 FF 的兼容性,公司换了,要求也高了,FF和IE 6 7 8 要全兼容了,

碰到要单独Hack IE8的。当然,用注释非常方便,只要添加相应的注释就可以解决。但问题是,为了一句CSS写多一个文件,或者在header上添加注释,那显然不是懒人的习惯做法。结论如下:
selector{
property:value; /* 所有浏览器 */
property:value9; /* 所有IE浏览器 */
+property:value; /* IE7 */
_property
当然,注意顺序。根据CSS的优先性,上面的写法,分别针对Firefox、IE8、IE7和IE6显示值。让我们看看这个:

CSS代码如下:

p.ie{
height:60px;text-align:center;line-height:60px;border:1px dashed #bbb;background:#f7f7f7;font:15;
color:blue; // 所有浏览器
color:brown9; // 所有IE浏览器
+color:red; // IE7
_color:green; // IE6
}

HTML 代碼:

<body style="width:500px;margin:0 auto;">
<p class="ie">
<span style="display:block;display:none9;">嘿嘿,小子竟然也用Firefox,蓝色文字。</span>
<!--[if IE 8]>不错不错,挺先进的嘛,使用IE8呢!文字是褐色的。<![endif]-->
<!--[if IE 7]>你,IE7,红色文字!<![endif]-->
<!--[if IE 6]>孩子,虽然显示的是绿色文字,不过,IE6可不是好东西呢!<![endif]-->
</p>
</body>

注意下面介绍的这些hack写法仅适用于XHTML1.0。如果没有在HTML最前加上

<!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">

那么效果将不一样!此外,这里所说的IE8,不是指IE8的兼容模式,因为IE8的兼容模式其实就是IE7。

区别IE6、7与FF/IE8:
background:blue;*background:orange;

引用
显示效果:
IE 6/7:orange
FF/IE8:blue
原理:FF/IE8不支持*开头,而IE6/7都支持。

区别IE6与IE7/IE8/FF:
background:green;_background:blue;

引用
显示效果:
IE7/8/FF:green
IE6:blue
原理:IE6支持下划线"_",IE7、8和firefox均不支持下划线。

区别FF/IE8和IE6/7:

background:orange;+background:green;-background:blue;

或者

background:orange;*background:green!important;*background:blue;

引用
显示效果:
IE6:blue
IE7:green
FF/IE8:orange
原理:IE6能识别-,IE7能识别+,IE8和FF都不能识别+和-
IE8/FF都不识别*,IE7优先识别!important,IE6不能识别!important。

关于IE8的hacks:

.test{
color:/***/#00f9; /* IE8 only */

color:#00f9; /* 适用于所有IE版本 */
}

可同时区分IE8、IE7、IE6、Firefox的CSS hacks:
.test{
color:#000; /* Firefox */
color:/***/#00f9; /* IE8 */
*color:#f00; /* IE7 */
_color:#0f0; /* IE6 */
}

添加相应的注释解决兼容性问题

注释相应的Css文件:

<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />

<!--[if IE 6]>

<link rel="stylesheet" type="text/css" href="css/IE6style.css" media="screen" />

<![endif]-->

<!--[if IE 7]>

<link rel="stylesheet" type="text/css" href="css/IE7style.css" media="screen" />

<![endif]-->

<!--[if gte IE 8]>

<link rel="stylesheet" type="text/css" href="css/IE8style.css" media="screen" />

<![endif]-->

注释相应的Css 内容:

<!--[if ie 6]>

<style>

<!--

#warp{ padding-bottom:11px;}

-->

</style>

<![endif]-->

<!--[if ie 7]>

<style>

<!--

#warp{ padding-bottom:11px;}

-->

</style>

<![endif]-->

<!--[if ie 8]>

<style>

<!--

#warp{ padding-bottom:11px;}

-->

</style>

<![endif]-->

 

时间: 2024-10-24 17:40:07

CSS兼容性问题 && CSS HACK的相关文章

解决IE5/IE5.5/IE6/FF的兼容性问题——CSS

css|解决|问题 解决IE5/IE5.5/IE6/FF的兼容性问题--CSS 之前找了几个不同版本的可独立运行的IE浏览器,正好拿来试试页面的兼容性问题.不试不知道,在IE6和FF中没问题的页面在IE5和IE5.5中乱成一团,一直听说IE5是WEB标准制作的一个"钉子户",现在不得不相信了. 既然有问题,那就找找解决的方法咯,在网上一搜,相关的文章还是不少的,觉得最直接的方法还是"IE条件注释",很方便的就能为IE的不同版本写样式.但这样就得为每个版本写一个样式,

关于CSS兼容性的一些经验

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在网页排版布局的时候,CSS兼容性问题,相信是每个网页制作人员最头疼的问题,这里仅仅分享下我个人的经验. 网页都可以分为3个部分,头部(header),主体部分(main)和脚注(footer),为了避免出现大的兼容性问题,可以在header和footer设置好高度,然后加上overflow:hidden; ,main部分则设置好宽度,同样加

css兼容性问题经验总结

css兼容性问题经验总结,水平有限,如果哪里不对,希望指正啊. 都是很早以前写的,水平有限,如果哪里不对,希望指正啊. IE的问题: 一.双边距问题 浮动元素的外边距会加倍,但与第一个浮动元素相邻的其他浮动元素外边距不会加倍. 解决方法:在此浮动元素增加样式  display:inline; 二.图片产生的间隙 父元素直接包含<img>,这个图片下方会和父元素边缘产生间隙. 解绝方法:1.在源代码中让</div>和<img>在同一行,因为那个间隙是由换行符产生的.  

firefox-火狐浏览器css兼容性问题

问题描述 火狐浏览器css兼容性问题 我用:after创建了一个三角形,chrome下是正常的,但是火狐下看中间有一条裂缝.后来我看了一下好像是transform的问题,可是我写了针对火狐的兼容,但是好象没有用.我的代码如下: &:after { position: absolute; left: -63px; top: -63px; content: ""; width: 0; height: 0; border: 63px solid rgba(1, 192, 154, 0

js组件-CSS兼容性处理方法有哪些

问题描述 CSS兼容性处理方法有哪些 怎么做做兼容处理 跪求大师解决啊 好么 希望大家可以帮我解决啊 哈哈哈哈 解决方案 IE7,6与Fireofx的CSS兼容性处理方法大全css兼容性IE Firefox css 兼容性处理

CSS高级教程: CSS框架

文章简介:可以从CSS框架中借鉴到什么. 现在很多人会使用 CSS 框架进行快速建站.那 CSS 框架是什么呢,它通常是一些 CSS 文件的集合,这些文件包括基本布局.表单样式.网格.简单组件.以及样式重置.使用 CSS 框架大大降低工作成本进行快速建站.当然对于一些大型的项目,可能会很难照搬某些框架直接使用的,因为直接使用会带来一些限制或者冗余的问题.但在 CSS 框架已经日趋成熟的今天,在我们设计项目架构.规范的时候,现时市面上一些优秀的框架也可以给我们提供很多可借鉴的地方. 本文主要从几个

学习CSS教程:学习CSS网页布局

文章简介:你也许知道什么叫选择器,什么叫属性,什么叫数值,也许你对css布局略懂一二,但这还远远不够.如果你想着从头开始学习HTML和CSS的话,我建议你认真查看下 this tutorial. 否则,在工作的时候,你依然陷入迷惘的泥潭中苦苦挣扎. 这个篇文章介绍的是现在广泛使用于网站布局领域的CSS基础. 你也许知道什么叫选择器,什么叫属性,什么叫数值,也许你对css布局略懂一二,但这还远远不够.如果你想着从头开始学习HTML和CSS的话,我建议你认真查看下 this tutorial. 否则

纯CSS方式实现CSS动画的暂停与播放!

使用纯 CSS 的方法,能否暂停.播放 CSS 动画?看起来不可能,至少很麻烦. 我们知道,在 CSS3 animation 中,有这样一个属性可以暂停.播放动画: {        animation-play-state: paused | running;    }  animation-play-state: 属性定义一个动画是否运行或者暂停.可以通过查询它来确定动画是否正在运行.另外,它的值可以被设置为暂停和恢复的动画的重放. 如果借助 Javascript,我们可以实现控制 CSS

谈谈一些有趣的CSS题目(十四)-- 纯 CSS 方式实现 CSS 动画的暂停与播放!

开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧. 不断更新,不断更新,不断更新,重要的事情说三遍. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少 谈谈一些有趣