【 – 字数作文】
第一篇:《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的样式,就可以达到这个效果了。
具体如下: