快iedeyuandan100

时间:2021-11-02 07:33:08 100字

第一篇:《div背景半透明ie6》

div背景半透明,覆盖整个可视区域的遮罩层效果 背景半透明,覆盖整个可视区域的遮罩层效果在工作中经常会遇到,这篇文章主要介绍了当内容超过一屏时如何做到多浏览器的兼容性。 下面我们通过一个简单的例子看看如何实现,高手请绕道。

html代码很简单 <div class="mask opacity"></div>

1 、半透明效果可以使用 css3 中的 opacity 属性,在低版本的IE浏览器中使用IE的alpha 滤镜。代码:

.opacity{ opacity:0.3;

filter: alpha(opacity=30);

background-color:#000; }

2 、要覆盖整个可视区域通常的做法是:

html,body{ height:100%}

.mask{height:100%;width:100%;}

但是这样做当内容超过一屏时只有IE6下显示的效果是我们所期望的,在其他浏览器中首屏以下的没能被遮盖住,为了兼容其他浏览器我们可以使用position:fixed; 来解决这个问题.

完整的代码:

<div class="mask opacity"></div>

html,body{ height:100%; margin:0; padding:0}

.mask{height:100%; width:100%; position:fixed;

_position:absolute; top:0; z-index:1000; }

.opacity{ opacity:0.3; filter: alpha(opacity=30);

background-color:#000; }

一个实际的代码例子:

<!DOCTYPE html>

<html>

<head>

<meta charset="gb2312" />

<title>背景半透明覆盖整个可视区域</title>

<style>

html,body{ height:100%; margin:0; padding:0; font-size:14px;} p{ line-height:18px;}

.mask{height:100%; width:100%; position:fixed; _position:absolute; top:0; z-index:1000; }

.opacity{ opacity:0.3; filter: alpha(opacity=30);

background-color:#000; }

.content{height:600px; width:800px; overflow:auto; border:2px solid #ccc; background-color:#fff; position:absolute; top:50%; left:50%; margin:-300px auto auto -400px; z-index:1001; word-wrap: break-word; padding:3px;}

.ph{ height:1000px;}

</style>

</head>

<body>

<p class="ph">place holder height:1000px;</p>

<div class="mask opacity"></div>

<div class="content">

<h1>背景半透明覆盖整个可视区域</h1>

<p> 这个效果效果在工作中经常会遇到,这篇文章主要介绍了当内容超过一屏时如何做到多浏览器的兼容性。 下面我们通过一个简单的例子看看如何实现,高手请绕道。 </p>

<p>html代码很简单 < d i v class="mask opacity">< / d i v > </p>

<p> 1 、半透明效果可以使用 css3 中的 opacity 属性,在低版本的IE浏览器中使用IE的alpha 滤镜。代码: <br />

<code>.opacity{ opacity:0.3; filter: alpha(opacity=30);

background-color:#000; }</code> </p>

<p> 2 、要覆盖整个可视区域通常的做法是: <br/>

<code> html,body{ height:100%} </code> <br/>

<code>.mask{height:100%;width:100%;}</code> <br/>

但是这样做当内容超过一屏时只有IE6下显示的效果是我们所期望的,在其他浏览器中首屏以下的没能被遮盖住,为了兼容其他浏览器我们可以使用<code>position:fixed; </code>来解决这个问题 </p>

<p> <strong>完整的代码</strong>:

<pre>

html,body{ height:100%; margin:0; padding:0}

.mask{height:100%; width:100%; position:fixed; _position:absolute; top:0; z-index:1000; }

.opacity{ opacity:0.3; filter: alpha(opacity=30);

background-color:#000; }

</pre>

</p>

<p> <strong>参考资料:</strong><br />

<a href="/>

<a href="/> <a

href="高度100%</a><br />

</p>

</div>

</body>

</html>

第二篇:《firefox,ie7,ie6兼容性问题,和css解决方案》

现在我大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对! important可以正确解释,会导致页面没按要求显示!搜索了一下,找到一个针对IE7不错的hack方式就是使用“*+html”,现在用IE7浏 览一下,应该没有问题了。

现在写一个CSS可以这样:

#example { color: #333; } /* Moz */

* html #example { color: #666; } /* IE6 */快iedeyuandan100

*+html #example { color: #999; } /* IE7 */快iedeyuandan100

那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999,他们都互不干扰。我真希望那 个IE6快点退休……

css Hacks,css样式表补丁.用于修正XHTML编码设计的网页模板布局,某些层的溢出问题,HACKS出处:,这 个CSS补丁(hacks)很简单,在样式表中单独为ie7设置某个元素,id或者class前面这样写:

*:first-child+html #ID{}

或者

*:first-child+html .class{}

别忘掉了前面的*,这个hacks使得DIV+CSS网页模板在ie5+,ie6,ie7,firefox 1.5,firefox 2的浏览器中都可以完美体现原始布局,而不会出现层溢出等问题.

IE7 修复了很多 bug,也增加了对一些选择符的支持,所以现在诸如 *html {} 和 html>body {} 等针对 IE 隐藏或显示的 hack 都会在 IE7 中失效。虽然 CSS Hack 不推荐使用,条件注释才是万无一失的过滤器,但是条件注释只能出现在 HTML 中,CSS Hack 还是有用武之地的。Nanobot 发现了一些针对 IE7 的 CSS Hack,具体就是:

>body

html*

*+html

这 三种写法,其中前两种都是不合法的 CSS 写法,在标准兼容浏览器中被被忽略,但是 IE7 却不这么认为。对于 >body ,它会将缺失的选择符用全局选择符 * 代替,也就是将其处理成了 *>body,而且不光对于 > 选择符,+,~ 选择符中这个现象也存在。对于 html* ,由于 html 和 * 之间没有空格,所以也是一种 CSS 语法错误,但 IE7 不会忽略,而是错误地认为这里有一个空格。对于第三种 *+html,IE7 认为 html 前面的 DTD 声明也是一个元素,所以 html 会被选中,这三种方法中只有这一种方法是合法的 CSS 写法,也就是说可以通过校验器的验证,因此也是作者推荐的 hack 用法。快iedeyuandan100

最后作者给出了最佳方式:

IE 6 and below

Use * html {} to select the html element.

IE 7 and below

Use *+html, * html {} to select the html element.

IE 7 only

Use *+html {} to select the html element.

IE 7 and modern browsers only

Use html>body {} to select the body element.

Modern browsers only (not IE 7)

Use html>/**/body {} to select the body element.

The IE7 CSS Hack(!important在ie7.0的hack方法)

由于ie对!important识别存在bug,而现在大部分网页标准设计师又通过这个bug来兼容ie和ff,但是ie7.0把这个bug给修 复了,所以问题又出现了,怎么兼容ie.7.0的同时又能兼容ie6.0和ff?正所谓”上有政策,下有对策”,国外的网页标准设计师通过使用css filter的办法(并不是css hack)来兼容ie7.0,ie6.0和ff,以下为作者从国外网站的翻译.

新建一个css样式如下:

插入代码:

#item {

width: 200px;

height: 200px;

background: red;

}

新建一个div,并使用前面定义的css的样式:

插入代码:

some text here

在body表现这里加入lang属性,中文为zh:

插入代码:

现在对div元素再定义一个样式:

插入代码:

*:lang(en) #item{

background:green !important;

}

这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了 ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式:

插入代码:

#item:empty {

background: green !important

}

:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此

元素存在,现在绿色会现在在除ie各版 本以外的浏览器上,并在以下浏览器和操作系统下通过测试:

ie7 beta 2 preview/win

ie5.01+/win

firefox 1.5/win

opera 8.5/win & linux

netscape 7.01, 8/win

mozilla 1.7.12/win & linux

safari 2/mac

firefox 1.0.4/linux

epiphany 1.4.8/linux

galeon 1.3.20/linux

Screenshot of the IE7 css hack in IE7

Screenshot of the IE7 css hack in Firefox 1.5

按照远作者的说法其实这不能算是一种hack,应该属于filter,不过这似乎并不是最重要的,因为通过这个办法,我们又一次了解决 IE6.0,IE7.0和其他浏览器之间的兼容性问题,而且使用:lang-filter这办法,在今后的一段时间内都会有用.

firefox,ie7,ie6兼容性问题,和css解决方案

注:IE都能识别*;标准浏览器(如Firefox,Opera,Netscape)不能识别*;IE6能识别*,但不能识别 !important,IE7能识别*,也能识别!important;FF不能识别*,但能识别!important;

写两句代码来控制一个属性,区别Firefox与IE6:

background:orange;*background:blue;

//这一句代码写出来时,你用firefox或其它非IE浏览时,会发现,写了该代码的区域背景是橙色的,如果用IE浏览,却是蓝色的,这是因为 IE都能识别*;标准浏览器(如Firefox,Opera,Netscape)不能识别*;

写两句代码来控制一个属性,区别IE7与IE6:

background:green !important;background:blue;

//这一句代码写出来时,你用IE7浏览,会发现,写了该代码的区域背景是绿色的,如果用IE6浏览,却是蓝色的,这是因为IE7能识别! important*,一但识别了,就执行,忽略了后面的那一句,但IE6却不能识别!important,所以前面部分跳过,直接执行了后半部份。 写两句代码来控制一个属性,区别Firefox与IE:

background:orange; *background:green;

//这一句代码写出来时,你用Firefox浏览,会发现背景是橙色的,而IE里却是绿色的,很简单,因为Firefox不能识别*,而 IE6,IE7都可以识*

写三句代码来控制一个属性,区别Firefox,IE7,IE6:

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

//这一句会使在Firefox在,背景呈橙色,IE7中为绿色,IE6中为蓝色,道理和前面一样,Firefox不能识别*,所以后面两句都不 执行,直接执行第一句,IE7当然也能执行第一行代码,但是因为第二句,他也能识别,所以就执行了第二句代码,把前面的效果给过滤了,而最后一句,IE7 是不能识别的。IE6不能识别!imprtant,本来运行了第一句代码了,第二句不能识别,那就理所当然的执行了最后一句。

什么是浏览器兼容:当我们们使用不同(的)浏览器(Firefox IE7 IE6)访问同一个网站,,或者页面(的)时候,,会出现一些不兼容(的)问题,,在这种浏览器下显示正常,,在另一种下就乱了,,我们们在编写 CSS(的)时候会很恼火,,刚修复了这个浏览器(的)问题,,结果另外一个浏览器却出了新问题..好吧,,我们服了行吧,,那我们就利用你们们(的)不 兼容各写一段css,让他们们各执行各(的),,这下总该你们没脾气了吧,,呵呵..

好了,,言归正传

一、!important (功能有限)

随着IE7对!important(的)支持, !important 方法现在只针对IE6(的)兼容.(注意写法.记(得)该声明位置需要提前.)

例如:

#example {

width: 100px !important; /* IE7+FF */

width: 200px; /* IE6 */

}

二、CSS HACK(的)方法(新手可以看看,,高手就当路过吧)

首先需要知道(的)是:

所有浏览器 通用 height: 100px;

IE6 专用 _height: 100px;

IE7 专用 *+height: 100px;

IE6、IE7 共用 *height: 100px;

IE7、FF 共用 height: 100px !important;

例如:

#example { height:100px; } /* FF */

* html #example { height:200px; } /* IE6 */

*+html #example { height:300px; } /* IE7 */

下面(的)这种方法比较简单

举几个例子:

1、IE6 - IE7+FF

第三篇:《ie6,ie7,ie8 css bug兼容解决记录》快iedeyuandan100

ie6,ie7,ie8 css bug兼容解决记录

发表于 2010/12/07 由 前端开发-武方博 8,424 views

断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决

,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法!

1:li边距“无故”增加

任何事情都是有原因的,li边距也不例外。

先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的padding引 起,padding的上下值对li有影响,左右无影 响。所以只好笨手笨脚地把padding去掉,换成margin。这是能解决问题,但往往不是我们想要的结果,或许 还会引起其他不必要的怪现象。 现在终于发现解决这个问题的方法,其实很简单,既然是有ul引 起的,就设置ul的显示形式为*display:inline-block;即可,前面加*是只 针对IE6/IE7有效,其他浏览器并不渲染这个属性。

2:分页数字 字体用“Arial ”加粗不抖动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/wangfengteacher"onFocus="this.blur()> Mike blog</a>

解决方案2:在标签中加入 hidefocus<a href="Mike blog</a>

解决方案3: 如果连接太多,可以用外部链接 .HTC 文件。如,blur.htc

文件内容如下:

<public:attach event="onfocus"

onevent="makeblur()"></public:attach>

<SCRIPT language=javascript>

function makeblur(){

this.blur();

}

</SCRIPT>

在 CSS 中加入如下代码:

A { behavior:url(blur.htc); }

解决方案4 ( 推荐 ):使用CSS样式,可加入代码:a {blr:expression_r(this.onFocus=this.blur())}

如果是FF等浏览器的话可这样写 a{ouline:none;}

17:制作1px细线表格

解决方案1 ( 推荐):我们只要给这个table一个border-collapse:collapse的样式,就可以达到这个效果了。

具体如下: