浏览器兼容性问题

几大主流浏览器及其内核

浏览器最关键的部分就是它的渲染引擎(Rendering Engine),也就是大家平常所说的的“内核”。

五大浏览器内核

  • Trident (MSHTML) (三叉戟;三叉线;三齿鱼叉)
  • Gecko (壁虎)
  • Presto ( 迅速的)
  • Webkit (Safari内核,Chrome内核原型,它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核)
  • Blink (由Google和Opera Software开发的浏览器排版引擎)
什么是浏览器兼容问题

同一份代码,有的浏览器效果正常,有的不正常。
要不要做

  • 产品的角度(产品的受众、受众的浏览器比例、效果优先还是基本功能优先)
  • 成本的角度 (有无必要做某件事)

渐进增强和优雅降级

渐进增强(progressive enhancement):针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进
行效果、交互等改进和追加功能达到更好的用户体验

优雅降级(graceful degradation):一开始就构建完整的功能,然后再针对低版本浏览器进行兼容

常见浏览器css兼容问题及其解决方法
  • div中的图片间隙
    bug:在块元素中插入图块状元素片时,有时图片会将块元素下方撑大三像素。
    Hack:将转为,给添加声明:display:block;

  • 表单元素行高不一致
    bug:表单元素行高对齐方式不一致
    hack:给表单元素添加声明:float:left;

  • 按钮元素默认大小及样式不一 致
    hack1: 统一大小及样式
    hack2:input外边套一个标签,在这个标签里写按钮的样式,把input的边框去掉。
    hack3:如果这个按钮是一个图片,直接把图片作为按钮的背景图即可。

  • 鼠标指针bug
    描述:cursor属性的hand属性值只有IE8浏览器识别;
    hack:如统一某元素鼠标指针形状为手型,应添加声明:cursor:pointer;

  • 透明属性
    IE浏览器写法:filter:alpha(opacity=数值);取值范围 1-100(IE8以下)
    兼容其他浏览器写法:opacity:数值;(数值的取值范围0-1,0.1,0.2,0.3-----0.9)

  • 当li里的A加display:block或float:left时,出现行高不一致,有的会多出3像素;
    hack1:给a加display:inline-block;
    hack2:给a加display:inline;
    Hack3:给li加float,并加宽度;

  • 父元素里有块元素,如果给子元素添加添加margin-top,父元素会下来。
    Hack1:给父元素添加overflow:hidden;
    Hack2:给子元素添加float;
    Hack3:给父元素加边框;
    或者用其他的方法达到我们想要的效果:如给父元素加padding-top.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值