1.position:absolute
平时使用CSS布局时难免使用position:absolute进行绝对定位,absolute生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。position的默认值为static,所以要使设置的元素相对于父元素绝对定位,需要对父元素的position设置除了static以为的值。
断断续续的在开发过程中收集了好多的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 ”加粗不抖动
无标题文档
分页样式
3:IE6 CSS选择器区分IE6 IE6不支持子选择器;先针对IE6使用常规申明CSS选择器,然后再用子选择器针对IE7+及其他浏览器。 /*IE6 专用 */ .content {color:red;} /* 其他浏览器 */ div>p .content {color:blue;} 4:IE6最小高度 IE6 不支持min-height属性,但它却认为height就是最小高度。解决方法: 使用ie6不支持但其余浏览器支持的属性!important。 #container{min-height:200px; height:auto !important; height:200px;} 5:IE6100% 高度 在IE6下,如果要给元素定义100%高度,必须要明确定义它的父级元素的高度,如果你需要给元素定义满屏的高度,就得 先给html和body定义height:100%;。 6:IE6躲猫猫bug 在IE6和IE7下,躲猫猫bug是一个非常恼人的问题。一个撑破了容器的浮动元素,如果在他之后有不浮动的内容,并且有一 些定义了:hover的链接,当鼠标移到那些链接上时,在IE6下就会触发躲猫猫。 解决方法很简单: 1.在(那个未浮动的)内容之后添加一个 2.触发包含了这些链接的容器的hasLayout,一个简单的方法就是给其定义height:1%; 7:IE6绝对定位元素的1像素间距bug IE6下的这个错误是由于进位处理误差造成(IE7已修复),当绝对定位元素的父元素高或宽为奇数时,bottom和right会 产生错误。唯一的解决办法就是给父元素定义明确的高宽值,但对于液态布局没有完美的解决方法。 8: IE下z-index的bug 在IE浏览器中,定位元素的z-index层级是相对于各自的父级容器,所以会导致z-index出现错误的表现。解决方法是给 其父级元素定义z-index,有些情况下还需要定义position:relative。 9: Overflow Bug 在IE6/7中,overflow无法正确的隐藏有相对定位position:relative;的子元素。解决方法就是给外包容器.wrap加上 position:relative;。 10: 横向列表宽度bug 如果你使用float:left;把
-
- 横向摆列,并且
- 内包含的(或其他)触发了 hasLayout,在IE6下就会有错误的 表现。解决方法很简单,只需要给定义同样的float:left;即可。 11: 列表阶梯bug 列表阶梯bug通常会在给
- 的子元素使用float:left;时触发,我们本意是要做一个横向的列表(通常 是导航栏), 但IE却可能呈现出垂直的或者阶梯状。解决办法就是给
- 定义float:left;而非子元素,或者 给
- 定义 display:inline;也可以解决。 12: 垂直列表间隙bug 当我们使用
- 包含一个块级子元素时,IE6(IE7也有可能)会错误地给每条列表元素(
- )之间添加空隙。 解决方法:把flaot并且清除float来解决这个问题;另外一个办法就是触发的hasLayout(如定 义高宽、 使用zoom:1;);也可以给
- 定义display:inline;来解决此问题;另外还有一个极有趣的方法,给包含的文 本末尾添加一个空格。 13: IE6调整窗口大小的 Bug 当把body居中放置,改变IE浏览器大小的时候,任何在body里面的相对定位元素都会固定不动了。解决办法: 给body定义position:relative;就行了。 14: 文本重复Bug 在IE6中,一些隐藏的元素(如注释、display:none;的元素)被包含在一个浮动元素里,就有可能引发文本重复bug。 解决办法:给浮动元素添加display:inline;。 15:链接a的title属性中的文字换行 啥也不说,先上个图 我们都知道,可以给链接a加上title属性,这样鼠标移动上去会显示title属性定义的 文字,常常用来加一些提示语句, 比如说点击查看详情之类的,代码形如: 。之前一直没有仔细注意过这个东西。如果鼠标浮动上去要显示更多东西的话,怎么实现呢。第一 反应是jquery的tooltip插件。今天无意中发现某个学院的网站鼠标移动上去可以显示这么完整的信息,效果看起来似乎还可以,就想看看怎么做的, 找了下,没发现有Javascript脚本,再往链接的地方一看,终于让我发现了门道了: 注意到了吗。。很简单,只要使用 这样的转义符号,即可实现换行。在一些tooltip要求定制性不高的情况下,这样的显示效果相 当不错,而且是浏览器原生的效果,安逸。 哎,虽然号称精通div+css,但是发现一些小小但是很实用的技巧自己还不知道,看来html还有很多东西可以挖掘。 16:如何去掉点击链接时的虚线 解决方案1:在 解决方案2:在标签中加入 hidefocus 解决方案3: 如果连接太多,可以用外部链接 .HTC 文件。如,blur.htc 文件内容如下: 在 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的样式,就可以达到这个效果了。 具体如下: 1、HTML结构:
-
- 在IE7/FF中,鼠标移动到链接上时,”淘你喜欢”字样会变为红色,但IE6则无反应。所以IE6的bug就是如果a 与 a:hover 的css定义是一样的,也就是说如果a:hover 中没有样式的改变,hover就不会被触发。但如果在a:hover{}增加一些特定的属性,例如 a:hover{border:none;} 或者 a:hover{padding:0;} 又或者 a:hover{background: none;} 此时hover就可以触发了。 23:原来IE6支持!important .demo { color:#F00!important; color:#000; }/*IE6显示错误理解:.demo显示为黑色*/ /*而下面IE6是正确理解的:.demo显示为红色*/ .demo { color:#F00!important;} .demo { color:#000; } 24:去掉button按钮左右两边的留白
-
- button按钮左右留白的解决方法25:中文字体在css中的写法 黑体SimHei\9ED1\4F53黑体 宋体SimSun\5B8B\4F53宋体 新宋体 NSimSun\65B0\5B8B\4F53新宋体 仿宋FangSong\4EFF\5B8B仿宋 楷体KaiTi\6977\4F53 楷体 微软正黑体Microsoft JhengHei\5FAE\x8F6F\6B63\9ED1\4F53微软正黑体 微软雅黑Microsoft YaHei\5FAE\8F6F\96C5\9ED1微软雅黑 幼圆 YouYuan\5E7C\5706幼圆 26: ie6里width:100%是相对于上有高度设置的元素 其他浏览器是相对于上个相对定位或绝对定位的元素 在非ie6的浏览器中都是满屏幕的红, 说明非ie6的浏览器的width和height的百分比,都是相对的上个相对定位或者绝对定位的元素,没有就为html元素 ,而ie6中的width和height 的百分比,相对的是上个有高宽显示设置的元素,而且height的百分比设置失效,所以上述代码在ie6中就出现宽度穿越了他的父元素而遇见width:500px;的元素的时候,边把自己设置成了width:500px;而height的设置则失效, 这个, 让人很蛋疼!ie6,真的该早点走了!
- button按钮左右留白的解决方法25:中文字体在css中的写法 黑体SimHei\9ED1\4F53黑体 宋体SimSun\5B8B\4F53宋体 新宋体 NSimSun\65B0\5B8B\4F53新宋体 仿宋FangSong\4EFF\5B8B仿宋 楷体KaiTi\6977\4F53 楷体 微软正黑体Microsoft JhengHei\5FAE\x8F6F\6B63\9ED1\4F53微软正黑体 微软雅黑Microsoft YaHei\5FAE\8F6F\96C5\9ED1微软雅黑 幼圆 YouYuan\5E7C\5706幼圆 26: ie6里width:100%是相对于上有高度设置的元素 其他浏览器是相对于上个相对定位或绝对定位的元素
-
- 哥乃多行文字垂直居中~哥乃多行文字垂直居中~哥乃多行文字垂直居中~哥乃多行文字垂直居中~container (I use SWFObject.js)[将flash嵌入脚本放到一个div容器中] (b) add wmode=transparent to Flash embed script[增加wmode=transparent 到flash嵌入脚本] (c) setcontainer with z-index:-1; [将外层容器的z-index设置为-1] (d) settag with style .. position:relative;left:0px;top:0px;z-index:0; (otherwise Firefox does not accept negative z-index) (e) set floating iframe in container with z-index: 99;[将浮动的iframe在容器中的zindex设置为99] (f) use CSS to position flashcontent and htmlcontent containers.[使用css来调整flash容器和html容器的位置] 其他方案网上比较多见,不做阐述.在此说下使用第一个方案如何解决: var so = new SWFObject("XXX.swf", "flashId", "宽度", "高度", "版本", "背景色"); //设置flash不遮盖div层 so.addParam("wmode", "opaque"); so.write("flashcontent"); 如此设置即可让flash无法遮盖住div 32:如何处理ie6的文字行高 ie6下汉字就会显示偏上位置,而在标准浏览器中不存在这个问题字体 Tahoma,试下 不过如果有规定第一个字体是用啥的,那就只能忽略这个问题..我终于明白淘宝为啥把Tahoma字体放到第一位了 测试ie6的文字行高表现
-
-
- 岁月不饶人哪
- hjgt
岁月不饶人哪
hjgt
33:利用 CSS 跨浏览器地隐藏文字一法 ont-size:0; // for firefox & opera color: transparent; // for webkit overflow:hidden; // for IE font-size:0; filter:alpha(opacity=0); 自测后兼容的浏览器如下: IE 6-8 Firefox 1-4 Opera 9-10 Safari 3-5 Chrome 1-6 34:button在chrome下默认有2px的margin 在chrome下有两像素margin 35:ie6和ie7里面margin失效我的margin在ie里面失效了解决办法去掉里面div的高度