Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 30861|回复: 0

Web前端浏览器兼容性问题及解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-4-9 15:59:36 | 显示全部楼层 |阅读模式

    常见的兼容性问题:
    1、不同浏览器的标签默认的外边距( margin )和内边距(padding)不同
    解决方案: css 里增加通配符 * { margin: 0; padding: 0; }

    2、IE6双边距问题;在 IE6中设置了float , 同时又设置margin , 就会出现边距问题
    解决方案:设置display:inline;

    3、当标签的高度设置小于10px,在IE6、IE7中会超出自己设置的高度
    解决方案:超出高度的标签设置overflow:hidden,或者设置line-height的值小于你的设置高度

    4、图片默认有间距
    解决方案:使用float 为img 布局

    5、IE9一下浏览器不能使用opacity
    解决方案:
    opacity: 0.5;filter: alpha(opacity = 50);filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50);

    6、边距重叠问题;当相邻两个元素都设置了margin 边距时,margin 将取最大值,舍弃最小值;
    解决方案:为了不让边重叠,可以给子元素增加一个父级元素,并设置父级元素为overflow:hidden;

    7、cursor:hand 显示手型在safari 上不支持
    解决方案:统一使用 cursor:pointer

    8、两个块级元素,父元素设置了overflow:auto;子元素设置了position:relative ;且高度大于父元素,在IE6、IE7会被隐藏而不是溢出;
    解决方案:父级元素设置position:relative

    技巧一:css hack

    使用hack 我可以把浏览器分为3类:ie6 ;ie7和遨游;其他(ie8 chrome ff safari opera等)

    ie6认识的hack 是下划线_ 和星号 *
    ie7 遨游认识的hack是星号 * (包括上面问题6中的 !important也算是hack的一种。不过实用性较小。)

      比如这样一个css设置 height:300px;*height:200px;_height:100px;
    ie6浏览器在读到 height:300px的时候会认为高时300px;继续往下读,他也认识*heihgt, 所以当ie6读到*height:200px的时候会覆盖掉
    前一条的相冲突设置,认为高度是200px。继续往下读,ie6还认识_height,所以他又会覆盖掉200px高的设置,把高度设置为100px;
    ie7和遨游也是一样的从高度300px的设置往下读。当它们读到*height200px的时候就停下了,因为它们不认识_height。所以它们会把高度
    解析为200px;剩下的浏览器只认识第一个height:300px;所以他们会把高度解析为300px。

    因为优先级相同且相冲突的属性设置后一个会覆盖掉前一个,所以书写的次序是很重要的。

    /* CSS属性级Hack */
    color:red; /* 所有浏览器可识别*/

    _color:red; /* 仅IE6 识别 */

    *color:red; /* IE6、IE7 识别 */

    +color:red; /* IE6、IE7 识别 */

    *+color:red; /* IE6、IE7 识别 */

    [color:red; /* IE6、IE7 识别 */

    color:red\9; /* IE6、IE7、IE8、IE9 识别 */

    color:red\0; /* IE8、IE9 识别*/

    color:red\9\0; /* 仅IE9识别 */

    color:red \0; /* 仅IE9识别 */

    color:red!important; /* IE6 不识别!important 有危险*/

    /* CSS选择符级Hack */
    *html #demo { color:red;} /* 仅IE6 识别 */

    *+html #demo { color:red;} /* 仅IE7 识别 */

    body:nth-of-type(1) #demo { color:red;} /* IE9+、FF3.5+、Chrome、Safari、Opera 可以识别
    */
    head:first-child+body #demo { color:red; } /* IE7+、FF、Chrome、Safari、Opera 可以识别 */

    :root #demo { color:red\9; } : /* 仅IE9识别 */
    越少的浮动,就会越少的代码,会有更灵活的页面,会有扩展性更强的页面。

    CSS属性前缀语义化:

    • 使用Trident内核的浏览器:IE、Maxthon、TT
    • 使用Gecko内核的浏览器:Netcape6及以上版本、FireFox
    • 使用Presto内核的浏览器:Opera7及以上版本;
    • 使用Webkit内核的浏览器:Safari、Chrome
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-8 03:39 , Processed in 0.064790 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表