




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自己整理的CSS兼容解决方法自己整理的CSS兼容解决方法您是第1093位浏览者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;例如:相应的css为#IamFloatfloat: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 不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两 个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样:#box width: 80px; height: 35px;htmlbody #box width: auto; height: auto; min-width: 80px; min-height: 35px;5.页面的最小宽度min -width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把width当 做最小宽度来使。为了让这一命令在IE上也能用,可以把一个 放到 标签下,然后为div指定一个类, 然后CSS这样设计:#container min-width: 600px; width:expression(document.body.clientWidth 600? 600px: auto );第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。6.DIV浮动IE文本产生3象素的bug左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.#box float:left; width:800px;#left float:left; width:50%;#right width:50%;*html #left margin-right:-3px; /这句是关键7.IE捉迷藏的问题当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。8.float的div闭合;清除浮动;自适应高度; 例如:这里的NOTfloatC并不希望继续平移,而是希望往下排。(其中floatA、floatB的属性已经设置为 float:left这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签 闭合。在 之间加上 这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会 产生异常。 并且将clear这种样式定义为为如下即可: .clear clear:both;作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的 box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。例如某一个wrapper如下定义:.colwrapper overflow:hidden; zoom:1; margin:5px auto;对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,譬如:比 如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而 page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成float,所以我们应该这样解决再嵌入一个float left而宽度是100%的DIV解决之万能float 闭合(非常重要!)关 于 clear float 的原理可参见 How To Clear Floats Without Structural Markup,将以下 代码加入Global CSS 中,给需要闭合的div加上 class=clearfix 即可,屡试不爽./* Clear Fix */.clearfix:after content:.; display:block; height:0; clear:both; visibility:hidden; .clearfix display:inline-block; /* Hide from IE Mac */.clearfix display:block;/* End hide from IE Mac */* end of clearfix */或者这样设置:.hackbox display:table; /将对象作为块元素级的表格显示11.高度不适应高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin 或paddign 时。例:#box background-color:#eee; #box p margin-top: 20px;margin-bottom: 20px; text-align:center; p对象中的内容解决方法:在P对象上下各加2个空的div对象CSS代码:.1height:0px;overflow:hidden;或者为DIV加上border属性。12 .IE6下为什么图片下有空隙产生解 决这个BUG的方法也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为 vertical-align:top | bottom |middle |text-bottom 都可以解决.13.如何对齐文本与文本输入框加上 vertical-align:middle;14.web标准中定义id与class有什么区别吗一.web标准中是不容许重复ID的,比如 div id=aa 不容许重复2次,而class 定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他.二.属性的优先级问题ID 的优先级要高于class,看上面的例子三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单.15. LI中内容超过长度后以省略号显示的方法此方法适用与IE与OP浏览器16.为什么web标准中IE无法设置滚动条颜色了解决办法是将body换成html17.为什么无法定义1px左右高度的容器IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px18.怎么样才能让层显示在FLASH之上呢解决的办法是给FLASH设置透明19.怎样使一个层垂直居中于浏览器中这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二页头:header登录条:loginBar标志:logo侧栏:sideBar广告:banner导航:nav子导航:subNav菜单:menu子菜单:subMenu搜索:search滚动:scroll页面主体:main内容:content标签页:tab文章列表:list提示信息:msg小技巧:tips栏目标题:title友情链接:friendLink页脚:footer加入:joinus指南:guild服务:service热点:hot新闻:news下载:download注册:register状态:status按钮:btn投票:vote合作伙伴:partner版权:copyRight1.CSSID的命名外套:wrap主导航:mainNav子导航:subnav页脚:footer整个页面:content页眉:header页脚:footer商标:label标题:title主导航:mainNav(globalNav)顶导航:topnav边导航:sidebar左导航:leftsideBar右导航:rightsideBar旗志:logo标语:banner菜单内容1:menu1Content菜单容量:menuContainer子菜单:submenu边导航图标:sidebarIcon注释:note面包屑:breadCrumb(即页面所处位置导航提示)容器:container内容:content搜索:search登陆:login功能区:shop(如购物车,收银台)当前的current2.样式文件命名主要的:master.css布局版面:layout.css专栏:columns.css文字:font.css打印样式:print.css主题:themes.css4,对于有float的,在最后一定要消除float效果当然,如果你只为兼容IE6,大可以不必消除5,减少嵌套,看到很多新手在最开始写的时候往往会有大量的嵌套(表格布局的后遗症吧)6,先布大块,在布小块7,不要有过多的页面注释,我曾经修改的一个页面完全变形,找了半天也没发现是什么问题,偶尔中删除了其中一条注释,居然好了,这个不清楚是什么原因,希望有高人指点一下。8,在没有特殊要求的情况下不要设置高度其实学习CSS+DIV很简单的,只要搞清楚其中的几个属性就可以完成布局。一,搞清float样式Div标签的默认宽度为百分之百,也就是说当两个div并列的时候产生的效果是第二个div会在第一个的下一行,但是布局的时候一定会有一行两列的情形出现,这个时候我们就要引入float(再次啰嗦,一定要记得清除浮动)这个就是最简单的一行两列二,一定要搞清楚padding,border,margin的含义比如有两幅表好的画画到边框的举例为padding边框为border两幅画之间的距离为margin其中padding算入宽高之内,颜色为background的颜色边框算入宽高之外border:1px solid #000(1像素黑色实线)Margin没有颜色属性(另外说下,在有float属性的时候在IE6会造成margin双倍的问题,这个时候只要加入display:inline即可解决)三,关于相对定位,绝对定位和空间定位绝对定位:position: absolute;有如下两种情况1,没有设定 Top、Right、Bottom、Left 的情况,默认依据父级的“内容区域原始点”为原始点2,有设定 Top、Right、Bottom、Left 的情况,这里又分了两种情况如下:(1),父级没 position 属性,浏览器左上角(即 Body)为“坐标原始点”进行定位,位置由 Top、Right、Bottom、Left 属性决定(2),父级有 position 属性,父级的“坐标原始点”为原始点相对定位:position: relative;参照父级的“内容区域原始点”为原始点,无父级则以 Body 的“内容区域原始点”为原始点,位置由 Top、Right、Bottom、Left 属性决定,并且会在父块以外占据相同的大小,所以不推荐使用。空间定位:z-index:数值当两个板块之间用绝对定位产生上下的时候,可以用z-index来决定哪个板块再上,数值大的位于数值小的上方。做一个简单的阴影效果:阴影效果阴影效果*注意一点,当设置left属性的时候不要设置right,同样,设置top之后不要设置bottom完全理解以上三点之后,就可以进行自己的CSS+DIV制作最后说一些关于IE6,IE7和FF的兼容问题以及一些小技巧1,hack方法FF,IE7可以识别!importantIE6,IE7识别*IE6识别_#hackwidth:500px;*width:400px!important;_width:300px宽度在FF下为500,IE7下400,IE6下300就我个人来说,padding值对于FF和IE系列的解析并不相同(个人感觉),为了达到完全一直而使用hack,一般情况下不需要使用这种方法2,当有float属性时,margin在IE6下双倍,可加入display:inline来解决3,想要有最小高度并根据内容自伸缩可以用以下方法设置min-height:500px!important;_height:500px,FF和IE7会以min-height值为最小高度并按内容伸缩,height对于IE6为最小高度并按内容伸缩4,对于FF想要板块根据页面居中需在父块设置margin:0 auto5,div标签没有垂直居中的概念,所以当只有一行文字的时候,想要垂直居中只需将line-height设置与height相同即可6,W3C标准写法:(1)所有卷标元素名称都使用小写错误 正确 (2)所有没有成对的空标签必须以 /结尾错误: 正确: (3)不允许使用target=_blank在HTML4.01可以使用target=_blank,但XHTML1.0是不被允许的,你可以改写为 target=new(4)特殊字符以符号表示比如空格使用(5) 正确使用CSS样式表错误 正确 (6) 同一个id选择器不可重复使用(7) 绝对不可省略双引号或单引号本文为个人原创,部分内容节选自网络,欢迎各位大大指出错误,小弟在此敬礼。【原创】CSS+DIV简易教程,个人经验您是第2486位浏览者_首先先声明,本人学习是根据国外页面CSS文件自行摸索,对很多概念化的东西并不理解,比如盒子模型等,完全不知道是什么意思再说几点注意事项1,用DW创建新的页面的时候,会出现一堆英文,如下:此段不可删除,为W3C标准!(记得最开始老师教的时候我问过是什么意思,他老人家告诉我是广告,囧)2,各个标签对之间都有默认的margin等值,所以最开始要设置为0div,p,span,form,ul,ol,li,input margin:0;padding:0;border:0; 一,搞清float样式Div标签的默认宽度为百分之百,也就是说当两个div并列的时候产生的效果是第二个div会在第一个的下一行,但是布局的时候一定会有一行两列的情形出现,这个时候我们就要引入float(再次啰嗦,一定要记得清除浮动)这个就是最简单的一行两列二,一定要搞清楚padding,border,margin的含义比如有两幅表好的画画到边框的举例为padding边框为border两幅画之间的距离为margin其中padding算入宽高之内,颜色为background的颜色边框算入宽高之外border:1px solid #000(1像素黑色实线)Margin没有颜色属性(另外说下,在有float属性的时候在IE6会造成margin双倍的问题,这个时候只要加入display:inline即可解决)三,关于相对定位,绝对定位和空间定位绝对定位:position: absolute;有如下两种情况1,没有设定 Top、Right、Bottom、Left 的情况,默认依据父级的“内容区域原始点”为原始点2,有设定 Top、Right、Bottom、Left 的情况,这里又分了两种情况如下:(1),父级没 position 属性,浏览器左上角(即 Body)为“坐标原始点”进行定位,位置由 Top、Right、Bottom、Left 属性决定(2),父级有 position 属性,父级的“坐标原始点”为原始点相对定位:position: relative;参照父级的“内容区域原始点”为原始点,无父级则以 Body 的“内容区域原始点”为原始点,位置由 Top、Right、Bottom、Left 属性决定,并且会在父块以外占据相同的大小,所以不推荐使用。空间定位:z-index:数值当两个板块之间用绝对定位产生上下的时候,可以用z-index来决定哪个板块再上,数值大的位于数值小的上方。做一个简单的阴影效果:阴影效果阴影效果*注意一点,当设置left属性的时候不要设置right,同样,设置top之后不要设置bottom完全理解以上三点之后,就可以进行自己的CSS+DIV制作最后说一些关于IE6,IE7和FF的兼容问题以及一些小技巧1,hack方法FF,IE7可以识别!importantIE6,IE7识别*IE6识别_#hackwidth:500px;*width:400px!important;_width:300px宽度在FF下为500,IE7下400,IE6下300就我个人来说,padding值对于FF和IE系列的解析并不相同(个人感觉),为了达到完全一直而使用hack,一般情况下不需要使用这种方法2,当有float属性时,margin在IE6下双倍,可加入display:inline来解决3,想要有最小高度并根据内容自伸缩可以用以下方法设置min-height:500px!important;_height:500px,FF和IE7会以min-height值为最小高度并按内容伸缩,height对于IE6为最小高度并按内容伸缩4,对于FF想要板块根据页面居中需在父块设置margin:0 auto5,div标签没有垂直居中的概念,所以当只有一行文字的时候,想要垂直居中只需将line-height设置与height相同即可6,W3C标准写法:(1)所有卷标元素名称都使用小写错误 正确 (2)所有没有成对的空标签必须以 /结尾错误: 正确: (3)不允许使用target=_blank在HTML4.01可以使用target=_blank,但XHTML1.0是不被允许的,你可以改写为 target=new(4)特殊字符以符号表示比如空格使用(5) 正确使用CSS样式表错误 正确 (6) 同一个id选择器不可重复使用(7) 绝对不可省略双引号或单引号本文为个人原创,部分内容节选自网络,欢迎各位大大指出错误,小弟在此敬礼。CSS对浏览器器的兼容性问题CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点。常见兼容问题:1.DOCTYPE 影响 CSS 处理2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:divmargin:30px!important;margin:28px;注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;10.IE5 和IE6的BOX解释不一致IE5下divwidth:300px;margin:0 10px 0 10px;div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改divwidth:300px!important;width /*/:340px;margin:0 10px 0 10px关于这个/*/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义ulmargin:0;padding:0;就能解决大部分问题注意事项:1、float的div一定要闭合。例如:(其中floatA、floatB的属性已经设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第14课 誕生日 教学设计-2024-2025学年初中日语人教版第一册
- 《月相变化的规律》(教学设计)2023-2024学年教科版三年级下册科学
- 第四課 デジタルカメラ说课稿-2025-2026学年新编日语第三册重排本-新编日语
- 蒸汽清洗油烟机培训课件
- 常州国企专招考试真题及答案
- 消防干部国考题目及答案
- 2025关于汽车销售代理的合同范本
- 闲鱼题目大全及答案
- 餐饮加盟商培训考试题及答案
- 2025综合商品销售合同模板大全
- 作业条件危险性评价法(LEC法)介绍
- 项目部刻章申请书
- 版挖掘机租赁合同
- 语言学概论全套教学课件
- JJF 1265-2022生物计量术语及定义
- GB/T 8118-2010电弧焊机通用技术条件
- GB/T 17421.7-2016机床检验通则第7部分:回转轴线的几何精度
- 电工技能测试
- 药事管理学全套课件
- 社区心理学课件
- 质量整改通知单(样板)
评论
0/150
提交评论