iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >CSS常见兼容性问题怎么解决
  • 580
分享到

CSS常见兼容性问题怎么解决

2024-04-02 19:04:59 580人浏览 薄情痞子
摘要

这篇文章主要介绍“CSS常见兼容性问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS常见兼容性问题怎么解决”文章能帮助大家解决问题。   浏览器的兼

这篇文章主要介绍“CSS常见兼容性问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS常见兼容性问题怎么解决”文章能帮助大家解决问题。

  浏览器的兼容性问题,通常是因为不同的浏览器对同一段代码有不同的解析,造成页面显示不统一的情况。

  这里谈到的浏览器,主要指IE6/IE7/IE...FireFoxChromeOperaSafari等。但更多的兼容还是考虑IE6/IE7/FF之间的斗争

  先来谈谈Csshack

  我们为了让页面形成统一的效果,要针对不同的浏览器或不同版本写出对应可解析的CSS样式,所以我们就把这个针对不同浏览器/版本而写CSS的过程叫做CSShack.

  CSShack主要有三种:IE条件注释法、CSS属性前缀法、选择器前缀法。

  (1)IE条件注释法,即在正常代码之外添加判别IE浏览器或对应版本的条件注释,符合条件的浏览器或者版本号才回执行里边的代码。

  <!--lt是小于gt是大于lte是小于等于gte是不小于!是不等于-->

  <!--[ifIE]>

  你想要执行的代码

  <![endif]-->

  <!--[ifltIE8]>

  你想要执行的代码

  <![endif]-->

  <!--[if!IE8]>

  你想要执行的代码

  <![endif]-->

  (2)CSS属性前缀法,即是给css的属性添加前缀。比如*可以被IE6/IE7识别,但_只能被IE6识别,IE6-IE10都可以识别"\9",IE6不能识别!importantFireFox不能识别*_\9

  可以先使用“\9"标记,将IE分离出来,再用”*"分离出IE6/IE7,最后可以用“_”分离出IE6

  .type{

  color:#111;

  color:#222\9;

  *color:#333;

  _color:#444;

  }

  所以可以按着优先级就能给特定的版本捎上特定颜色

  可以先使用“\9"标记,将IE分离出来,再用”*"分离出IE6/IE7,最后可以用“_”分离出IE6

  .type{

  color:#111;

  color:#222\9;

  *color:#333;

  _color:#444;

  }

  所以可以按着优先级就能给特定的版本捎上特定颜色

  为什么说一般呢...你看看下面这个例子,IE6貌似还认得出!important

  其实也能看出来了,当属性一起写在{}里头时,前者肯定会被后者覆盖。要使!important有效,就应置于多个{}间。

  h2{color:#f00!important;}

  h2{color:#000;}

  h3{color:#f00!important;color:#000;}

  <h2>test1</h2>

  <h3>test2</h3>

  说明:在标准模式中

  “-&Prime;减号是IE6专有的hack

  “\9&Prime;IE6/IE7/IE8/IE9/IE10都生效

  “\0&Prime;IE8/IE9/IE10都生效,是IE8/9/10的hack

  “\9\0&Prime;只对IE9/IE10生效,是IE9/10的hack

  (3)选择器前缀法,顾名思义,就是给选择器加上前缀。

  IE6可识别*p{color:red;}

  IE7可识别*+p{color:red;}

  @mediascreen\9{...}只对IE6/7生效

  @media\0screen{body{background:red;}}只对IE8有效

  @media\0screen\,screen\9{body{background:blue;}}只对IE6/7/8有效

  @mediascreen\0{body{background:green;}}只对IE8/9/10有效

  @mediascreenand(min-width:0\0){body{background:gray;}}只对IE9/10有效

  @mediascreenand(-ms-high-contrast:active),(-ms-high-contrast:none){body{background:orange;}}只对IE10有效等等

  再来看看主要的兼容问题:

  (1)最主要也是最常见的,就是浏览器对标签的默认支持不同,所以我们要统一,就要进行CSSreset.最简单的初始化方法是*{margin:0;padding:0;}但不推荐,而且它也并不完善。

  贴一个淘宝的样式初始化~

  body,h2,h3,h4,h5,h6,h7,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,fORM,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}

  body,button,input,select,textarea{font:12px/1.5tahoma,arial,\5b8b\4f53;}

  h2,h3,h4,h5,h6,h7{font-size:100%;}

  address,cite,dfn,em,var{font-style:normal;}

  code,kbd,pre,samp{font-family:couriernew,courier,monospace;}

  small{font-size:12px;}

  ul,ol{list-style:none;}

  a{text-decoration:none;}

  a:hover{text-decoration:underline;}

  sup{vertical-align:text-top;}

  sub{vertical-align:text-bottom;}

  legend{color:#000;}

  fieldset,img{border:0;}

  button,input,select,textarea{font-size:100%;}

  table{border-collapse:collapse;border-spacing:0;}

  (2)IE6双边距bug:块属性标签添加了浮动float之后,若在浮动方向上也有margin值,则margin值会加倍。其实这种问题主要就是会把某些元素挤到了第二行

  <styletype="text/css">

  html,body,div{margin:0;padding:0;}

  .wrap{width:200px;height:200px;border:1pxsolid#333;}

  .box{float:left;;margin-left:10px;width:80px;height:80px;background-color:green;}

  </style>

  </head>

  <body>

  <divclass="wrap">

  <divclass="box"></div>

  <divclass="box"></div>

  </div>

  <scripttype="text/javascript">

  </script>

  </body>

  解决的方式有两个:

  1.给float元素添加display:inline即可正常显示

  2.就是hack处理了,对IE6进行_margin-left:5px;

  (3)跟上述差不多,也属于IE6双边距bug:行内属性标签,为了设置宽高,我们经常就会设置成display:block;这样一来就产生上述的问题。

  解决办法也是天津display:inline;但是这样一来我们就不能设置宽高了,所以呢需要再加个display:table.

  所以你设置display:block后,再添上display:inline和display:table

  (4)上下margin重合问题,相邻的两个pmargin-leftmargin-right不会重合,但相邻的margin-topmargin-bottom会重合。

  .box1{width:200px;height:200px;border:1pxsolid#333;}

  .mt{margin-top:10px;}

  .mb{margin-bottom:10px;}

  <divclass="box1mb"></div>

  <divclass="box1mt"></div>

  (5)有些浏览器解析img标签也有不同,img是行内的,一般都会紧接着排放,但是在有些情况下还是会突然出现个间距,解决办法是给它来个浮动float

  (6)标签属性min-height是不兼容的,所以使用的时候也要稍微改改。这样吧:

  .box{min-height:100px;height:auto!important;height:100px;overflow:visible;}

  (7)很多时候可能会纳闷超链接访问过后样式就混乱了,hover样式不出现了。其实主要是其CSS属性的排序问题。一般来说,最好按照这个顺序:L-V-H-A

  简单的记法是lovehat

  a:link{}a:visited{}a:hover{}a:active{}

  (8)chrome下默认会将小于12px的文本强制按照12px来解析。解决办法是给其添加属性:

  -WEBkit-text-size-adjust:none;

  (9)png24位的图片在IE6下面会出现背景,所以最好还是使用png8格式的

  (10)因为存在两种盒子模式:IE盒子模式和W3C标准模式,所以对象的实际宽度也要注意。

  IE/Opera:对象的实际宽度=(margin-left)+width+(margin-right)

  Firefox/Mozilla:对象的实际宽度=(margin-left)+(border-left-width)+(padding-left)+width+(padding-right)+(border-right-width)+(margin-right)

  (11)鼠标的手势也有问题:FireFox的cursor属性不支持hand,但是支持pointer,IE两个都支持;所以为了兼容都用pointer

  (12)有个说法是:FireFox无法解析简写的padding属性设置。

  如padding5px4px3px1px;必须改为padding-top:5px;padding-right:4px;padding-bottom:3px;padding-left:1px。但我试了一下,发现还是可以解析的,难道是版本的原因?

  (13)消除ul、ol等列表的缩进时,样式应写成:list-style:none;margin:0px;padding:0px;其中margin属性对IE有效,padding属性对FireFox有效

  (14)CSS控制透明度问题:一般就直接opacity:0.6;IE就filter:alpha(opacity=60)

  但在IE6下又有问题,所以又得弄成filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60);

  (15)有些时候图片下方会出现一条间隙,通常会出现在FF和IE6下面比如

  <div><imgsrc="1.jpg"/></div>

  一般给img添加vertical-align属性即可,比如topmiddle

  img{verticle-align:center;}

  (16)IE6下p高度无法小于10px

  比如定义一条高2px的线条,FF和IE7都正常

  但IE6就是10px

  解决的办法有两种:添加overflow属性或设置fontsize大小为高度大小如:

  <divstyle="height:2px;overflow:hidden;background:#000000;width:778px;"></div>

  <divstyle="height:2px;font-size:2px;background:#000000;width:778px;">&nbps;</div>
CSS常见兼容性问题怎么解决

关于“CSS常见兼容性问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网JavaScript频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: CSS常见兼容性问题怎么解决

本文链接: https://www.lsjlt.com/news/93122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS常见兼容性问题怎么解决
    这篇文章主要介绍“CSS常见兼容性问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS常见兼容性问题怎么解决”文章能帮助大家解决问题。   浏览器的兼...
    99+
    2022-10-19
  • win10兼容常见问题怎么解决
    本篇内容介绍了“win10兼容常见问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win10兼容模式设置的方法首先右键打开需要设置...
    99+
    2023-07-01
  • XHTML+CSS兼容性问题怎么解决
    本篇内容主要讲解“XHTML+CSS兼容性问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“XHTML+CSS兼容性问题怎么解决”吧!解决XHTML+C...
    99+
    2022-10-19
  • IE6中怎么解决CSS兼容性问题
    本篇内容主要讲解“IE6中怎么解决CSS兼容性问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“IE6中怎么解决CSS兼容性问题”吧!  IE6中常见CSS兼容...
    99+
    2022-10-19
  • 怎么解决CSS浏览器兼容性问题
    这篇文章主要介绍了怎么解决CSS浏览器兼容性问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为什么会有浏览器兼容性问题?还不是因为浏览器厂商太多了!Chrome,Frire...
    99+
    2023-06-08
  • 常用CSS浏览器兼容问题怎么解决
    这篇文章主要讲解了“常用CSS浏览器兼容问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常用CSS浏览器兼容问题怎么解决”吧! 一、最后一排笔墨...
    99+
    2022-10-19
  • css min-height属性的兼容问题怎么解决
    CSS min-height属性的兼容问题可以通过以下方法解决:1. 使用浏览器前缀:在不同浏览器中添加对应的浏览器前缀,如-web...
    99+
    2023-10-12
    css
  • 解决IE6兼容性问题的常见方法有哪些
    今天就跟大家聊聊有关解决IE6兼容性问题的常见方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。解决IE6兼容性问题常见方法1、使用声明你必须...
    99+
    2022-10-19
  • css兼容问题如何解决
    这篇文章主要介绍了css兼容问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css兼容问题如何解决文章都会有所收获,下面我们一起来看看吧。 针对差别的IE浏览器版...
    99+
    2022-10-19
  • web前端中常见的兼容性问题有哪些及怎么解决
    这篇“web前端中常见的兼容性问题有哪些及怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“web前端中常见的兼容性问题...
    99+
    2023-06-27
  • IE6中常见CSS兼容性解决技巧是怎样的
    IE6中常见CSS兼容性解决技巧是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。IE6浏览器目前的市场份额仍然很高,因此作为网页前端开发...
    99+
    2022-10-19
  • 常见IE和火狐的CSS兼容性问题有哪些
    本篇文章给大家分享的是有关常见IE和火狐的CSS兼容性问题有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。向大家介绍一下IE和火狐的CSS...
    99+
    2022-10-19
  • IE6中常见CSS兼容性解决技巧有哪些
    IE6中常见CSS兼容性解决技巧有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。向大家简单介绍一下IE6中常见CSS兼容性解决技巧,I...
    99+
    2022-10-19
  • 怎么解决IE7和IE8兼容性问题
    怎么解决IE7和IE8兼容性问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。IE8会是福音还是又一个光环据称全面兼容标准,今天向大家介绍如何...
    99+
    2022-10-19
  • FireFox与IE兼容的CSS常见问题有哪些
    这篇文章给大家介绍FireFox与IE兼容的CSS常见问题有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在前端开发中,我们经常遇到浏览器的兼容性问题,特别是IE与FireFox之...
    99+
    2022-10-19
  • Java数组和JavaScript响应:如何解决常见的兼容性问题?
    在今天的软件开发中,Java和JavaScript是两种非常流行的编程语言。尽管它们之间有很多相似之处,但它们之间还是存在一些差异。其中最明显的差异之一就是它们处理数组的方式。本文将讨论Java数组和JavaScript响应之间的差异以及...
    99+
    2023-08-19
    数组 javascript 响应
  • IE6下兼容性常见的问题有哪些
    小编给大家分享一下IE6下兼容性常见的问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!常见问题一:在Ie6下,内容会把父...
    99+
    2022-10-19
  • IE7.JS怎样解决IE兼容性问题
    这篇文章给大家介绍 IE7.JS怎样解决IE兼容性问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。和大家重点讨论一下如何使用IE7.JS解决IE兼容性问题,IE7.JS是一个用来使老...
    99+
    2022-10-19
  • CSS如何解决与IE7和IE8的兼容性问题
    这篇文章主要讲解了“CSS如何解决与IE7和IE8的兼容性问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS如何解决与IE7和IE8的兼容性问题”吧!...
    99+
    2022-10-19
  • 怎样解决IE6、IE7和IE8的CSS兼容问题
    本篇文章为大家展示了怎样解决IE6、IE7和IE8的CSS兼容问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。和大家重点讨论一下CSS兼容:解决IE6、IE7和I...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作