CSS兼容性
- 格式:ppt
- 大小:1.62 MB
- 文档页数:27


前端开发语言选择及优缺点前端开发是Web开发中至关重要的一部分,而选择合适的前端开发语言对于项目的成功至关重要。
本文将对几种常见的前端开发语言进行分析,包括HTML、CSS、JavaScript,以及它们各自的优缺点。
一、HTML(超文本标记语言)HTML是Web页面的基础,它定义了页面的结构和内容。
优点如下:1. 简单易学:HTML语法相对简单,学习成本低,即使是初学者也可以迅速上手。
2. 兼容性好:HTML可以在不同的浏览器和设备上运行,具有较好的兼容性。
3. 语义化强:HTML标签具有语义化,有助于提高网页在搜索引擎中的排名,提升用户体验。
4. 支持多媒体:HTML支持嵌入图片、音频、视频等多媒体内容,可以丰富用户的页面体验。
然而,HTML也存在以下缺点:1. 无法实现复杂交互:HTML本身仅能描述页面结构,无法实现动态交互效果,需要结合其他语言。
2. 样式控制有限:HTML对页面的样式控制有限,需要借助CSS来实现更丰富的样式效果。
二、CSS(层叠样式表)CSS用于设置网页的样式和布局,是前端开发中不可或缺的一部分。
下面是CSS的优点:1. 分离内容和样式:CSS将样式从内容中分离出来,使得页面结构更加清晰,易于维护。
2. 样式控制丰富:CSS支持各种样式效果,如颜色、字体、边框、背景等,可以实现更加美观的页面设计。
3. 响应式布局:CSS可以根据设备的不同自动调整页面布局,适应不同大小的屏幕。
4. 动画效果:CSS提供了丰富的动画效果,可以为网页添加交互和生动感。
CSS的缺点包括:1. 兼容性差:由于浏览器对CSS标准的解析存在差异,导致样式在不同浏览器中显示效果不一致。
2. 学习曲线较陡峭:相比HTML,CSS的学习难度较高,需要掌握大量的样式属性和选择器。
三、JavaScriptJavaScript是一种常用的脚本语言,用于实现Web页面的动态效果和交互功能。
以下是JavaScript的优点:1. 客户端脚本语言:JavaScript可以在用户的浏览器中直接运行,不需要服务器的支持,减轻服务器的压力。
遇到的兼容性问题与解决⽅法浏览器兼容问题⼀:不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写⼏个标签,不加样式控制的情况下,各⾃的margin 和padding差异较⼤。
碰到频率:100%解决⽅案:CSS⾥ *{margin:0;padding:0;}备注:这个是最常见的也是最易解决的⼀个浏览器兼容性问题,⼏乎所有的CSS⽂件开头都会⽤通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题⼆:块属性标签float后,⼜有横⾏的margin情况下,在IE6显⽰margin⽐设置的⼤问题症状:常见症状是IE6中后⾯的⼀块被顶到下⼀⾏碰到频率:90%(稍微复杂点的页⾯都会碰到,float布局最常见的浏览器兼容问题)解决⽅案:在float的标签样式控制中加⼊ display:inline;将其转化为⾏内属性备注:我们最常⽤的就是div+CSS布局了,⽽div就是⼀个典型的块属性标签,横向布局的时候我们通常都是⽤div float实现的,横向的间距设置如果⽤margin实现,这就是⼀个必然会碰到的兼容性问题。
浏览器兼容问题三:设置较⼩⾼度标签(⼀般⼩于10px),在IE6,IE7,遨游中⾼度超出⾃⼰设置⾼度问题症状:IE6、7和遨游⾥这个标签的⾼度不受控制,超出⾃⼰设置的⾼度碰到频率:60%解决⽅案:给超出⾼度的标签设置overflow:hidden;或者设置⾏⾼line-height ⼩于你设置的⾼度。
备注:这种情况⼀般出现在我们设置⼩圆⾓背景的标签⾥。
出现这个问题的原因是IE8之前的浏览器都会给标签⼀个最⼩默认的⾏⾼的⾼度。
即使你的标签是空的,这个标签的⾼度还是会达到默认的⾏⾼。
浏览器兼容问题四:⾏内属性标签,设置display:block后采⽤float布局,⼜有横⾏的margin的情况,IE6间距bug问题症状:IE6⾥的间距⽐超过设置的间距碰到⼏率:20%解决⽅案:在display:block;后⾯加⼊display:inline;display:table;备注:⾏内属性标签,为了设置宽⾼,我们需要设置display:block;(除了input标签⽐较特殊)。
css--两⾏显⽰省略号兼容⽕狐浏览器css--两⾏显⽰省略号兼容⽕狐浏览器正常写法:.ellipse1{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.ellipse2{overflow:hidden; text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;} 总结下来就是:固定的宽度,强制不换⾏,超出隐藏,显⽰省略号。
四个属性但是在⽕狐下不兼容:兼容做法:p{position: relative; line-height: 20px; max-height: 40px;overflow: hidden;}p::after{content: "..."; position: absolute; bottom: 0; right: 0; padding-left: 40px;background: -webkit-linear-gradient(left, transparent, #fff 55%);background: -o-linear-gradient(right, transparent, #fff 55%);background: -moz-linear-gradient(right, transparent, #fff 55%);background: linear-gradient(to right, transparent, #fff 55%);}1. 将height设置为line-height的整数倍,防⽌超出的⽂字露出。
2. 给p::after添加渐变背景可避免⽂字只显⽰⼀半。
3. 由于ie6-7不显⽰content内容,所以要添加标签兼容ie6-7(如:<span>…<span/>);兼容ie8需要将::after替换成:after。
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解决方法:div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。
所以在IE下其实解释成这样:div{maring:30px;margin:28px}重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;10.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。