分类目录归档:Css

CSS常见兼容问题

抄袭位置:http://www.kiman.me/2008/12/browser-compatibility-css-code/ CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名.  CSS技巧 1.div的垂直居中问题vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行  2. margin加倍的问题     设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;    例如:    <#div id=”imfloat”>    相应的css为    #IamFloat{    float:left;    margin:5px;/*IE下理解为10px*/    display:inline;/*IE下再理解为5px*/}  3.浮动ie产生的双倍距离     #box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}    这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);    #box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;   4 IE与宽度和高度的问题IE … 继续阅读

发表在 Css | 标签为 , , | 留下评论

【转】浏览器兼容性问题及解决方案

作者:阿里巴巴前端开发 浏览器的不兼容,大家肯定都是深恶痛绝的,往往我们只是去做修补,却忘了更重要的事情,那就是追溯根源,避免类似的不兼容再次出现。在下不才,归纳几点html编码要素,望能指点各位: 1.文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px,opera下就更不一样了。解决方案:给文字设定 line-height 。确保所有文字都有默认的 line-height 值。这点很重要,在高度上我们不能容忍1px 的差异。 2.ff下容器高度限定,即容器定义了height之后,容器边框的外形就确定了,不会被内容撑大,而ie下是会被内容撑大,高度限定失效。所以不要轻易给容器定义height。 3.还讨论内容撑破容器问题,横向上的。如果float 容器未定义宽度,ff下内容会尽可能撑开容器宽度,ie下则会优先考虑内容折行。故,内容可能撑破的浮动容器需要定义width。 小实验:有兴趣大家可以看看这段实验。在不同浏览器下分别测试以下各项代码。    a.<div style=”border:1px solid red;height:10px”></div>  b.<div style=”border:1px solid red;width:10px”></div>    c.<div style=”border:1px solid red;float:left”></div>        d.<div style=”border:1px solid red;overflow:hidden”></div> 上面的代码在不同浏览器中是不一样的,实验起源于对小height 值div 的运用,<div style=”height:10px;overflow:hidden”></div>,小height 值要配合overflow:hidden一起使用。实验好玩而已,想说明的是,浏览器对容器的边界解释是大不相同的,容器内容的影响结果各不相同。 4.浮动的清除,ff下不清除浮动是不行的。 纠正大家一个误区,遇到不兼容就说ff烂是不对的,其实更多时候是ie的奇怪表现让我们无所适从。以下列出ie6的种种劣迹。 5.最被痛恨的,double-margin bug。ie6下给浮动容器定义margin-left 或者margin-right 实际效果是数值的2倍。解决方案,给浮动容器定义display:inline。 6.mirrormargin bug,当外层元素内有float元素时,外层元素如定义margin-top:14px,将自动生成margin-bottom:14px。padding也会出现类似问题,都是ie6下的特产,该类bug … 继续阅读

发表在 Css | 标签为 | 留下评论

【转】div+css面试题

 1.超链接访问过后hover样式就不出现的问题?   被点击访问过的超链接样式不在具有hover和active了,处理方法是改动CSS属性的排列顺序: L-V-H-A   2.IE6的双倍边距BUG   例如: <style type=”text/css”>  body {margin:0}  div { float:left; margin-left:10px; width:200px; height:200px; border:1px solid red }</style>   浮动后本来外边距10px,但IE解释为20px,处理办法是加上display:inline   3.为什么FF下文本无法撑开容器的高度?   标准浏览器中流动高度值的容器是不会象IE6里那样被撑开的,那我又想流动高度,又想能被撑开需要怎样设置呢?办法就是去掉he ight设置min-height:200px; 这里为了照顾不认识min-height的IE6 可以这样定义: div { height:auto!important; height:200px; min-height:200px; }   4.为什么web标准中IE无法设置滚动条颜色了?   原来样式设置: <style type=”text/css”>body { scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee; scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000; scrollbar-track-color:#fff; … 继续阅读

发表在 Css | 标签为 | 留下评论

【转】IE和火狐常见的css区别汇总

1. Div居中问题 div设置 margin-left, margin-right 为 auto 时已经居中, IE 不行,IE需要设定body居中, 首先在父级元素定义text-algin: center; 这个的意思就是在父级元素内的内容居中。    2.链接(a标签)的边框与背景 a 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。 参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。 3.超链接访问过后hover样式就不出现的问题 被点击访问过的超链接样式不在具有hover和active了 解决方法是 改变CSS属性的排列顺序: L-V-H-A Code: … 继续阅读

发表在 Css | 标签为 , | 留下评论