美文网首页
html和css部分常见兼容性问题

html和css部分常见兼容性问题

作者: EasyBooking | 来源:发表于2018-02-10 15:02 被阅读0次



     常见的兼容问题及解决方法

    1. 行内元素或行内块元素在代码换行写时会出现左右的间隙,解决方法如下

    1) 将代码写在一行上

    2) 给父元素设置font-size:0,注意,子元素的字体大小需要单独设置

    3) 给元素设置浮动

    2. 当图片被放置于块元素中时,图片下方有间隙,解决方法如下

    1) 给图片设置display:block;

    2) 给图片设置vertical-align:top、middle、bottom

    3) 给父元素设置font-size:0

    4) 给图片设置浮动,同时清除父元素的塌陷

    5) 给父元素加height

    3. 该图片加超链接后,在IE浏览器下面图片有边框,解决方法如下

    1) 给图片设置border:none

    4. 给图片加超链接,然后设置鼠标移过超链接时显示边框的效果,但是发现边框只显示一半,解决办法如下

    1) 给超链接设置display:block,同时要解决图片下方有缝隙的问题

    5. 行内块元素上下错位问题,解决方法如下

    1) 给行内块元素设置vertical-align:top、middle、bottom

    2) 将元素浮动

    6. 在不同浏览器下面元素的默认的margin和padding的值不相同,解决方法如下

    1) *{margin:0;padding:0}

    7. 上下的两个元素,默认的间距为较大的margin值,但是如果两个元素设置了浮动,那么这两个元素的间距就是margin之和

    8. 父子关系的两个元素,如果给子元素设置float:left,且给子元素设置margin-left,那么在IE6下面margin-left加倍,解决方法如下

    1) 给子元素设置:display:inline

    9. 父子关系的两个元素,如果给父元素设置了text-align:center,那么在IE7及以下版本中,子元素会水平居中显示,但是在谷歌和火狐及IE高版本浏览器中子元素是不居中显示的,如果要子元素居中显示,解决方法如下:

    1) 子元素设置margin:0  auto

    10. 父子关系的两个元素,当给子元素设置margin-top时,父元素会同步下移,即子元素的margin-top实际上加到了父元素身上,解决方法如下:

    1) 给子元素加margin-top的同时,给父元素加边框

    2) 给子元素加margin-top的同时,给父元素加paddint-top:0.1px;

    3) 给子元素加margin-top的同时,给父元素设置浮动

    4) 不给子元素加margin-top,给父元素加padding-top

    11. 两个兄弟元素,如果第一个元素设置了浮动,那么在IE6下面两个元素会在一行显示,且中间会有3px间隙,解决方法如下:

    1) 给第二个元素也设置浮动

    12. 一个元素如果没有设置height,那么这个元素的高度为自适应高度,此时如果没有内容,元素的高度会为0,如果有内容,那么元素的高度会被撑开。如果想做出如下效果:没有内容,元素有一个最小的高度,有内容元素的高度有内容撑开,可以给元素加min-height(该属性的作用就是给元素设置最小高度),但是需要注意的问题是IE6中不识别min-height,解决方法如下:

    1) 给元素设置如下属性div{height:auto!important;height:200px;min-height:200px},属性说明

     height:auto!important,该属性的作用是让div的高度在所有浏览器中都是自适应高度,即高度有内容撑开

     height:200px,该属性的作用是让IE6浏览器中有最小高度,因为IE6不识别min-height,所以只能用height,不用担心属性值覆盖问题,因为上一条属性中有!important

     min-height:200px,该属性的作用是解决除IE6之外的所有浏览器的最小高度问题

    13. 元素中内容垂直居中无法使用vertical-align:middle,解决方法如下

    1) 给元素设置行高和高度相同的效果

    14. 文本和文本框在垂直方向上没有居中对齐(次现象出现IE8及以前的浏览器),解决方法如下

    1) 给文本框设置vertical-align:middle,注意的是,该方法只解决了文本框和提示文字的垂直关系,但是文本框里面的内容的垂直对齐方式并没有解决(即在IE低版本中文本框中的内容靠上显示),解决方法是给文本框设置行高和高度相同

    15. cursor:hand属性在谷歌、火狐、IE高版本中不以手的形式显示,解决方法如下

    1) 用cursor:pointer替换cursor:hand

    16. 当通过给li设置高度调节li的显示效果时,在IE低版本中会发现排版错位问题,解决方法如下

    1) 不要给li设置height,可以通过给li设置line-height的方法来调节li的高度

    17. IE6不允许将:hover加在非超链接元素上,解决方法如下

    1) 适当的用超链接将内容包含起来,然后给超链接设置:hover效果

    18. 清除浮动时使用.clearFloat类,IE6下面不起作用,原因是clearFloat所在元素没有宽度,解决方法:

    1) 给父元素一个固定宽度

    2) 给父元素加zoom:1

    19. 清除浮动时使用overflow:hidden,IE6下面不起作用,原因是父元素没有固定宽度,解决方法

    1) 给父元素加一个固定宽度

    2) 给父元素加zoom:1

     IE条件注释:

    1. 判断是否为IE浏览器,格式如下

    2. 判断是否为IE浏览器的某个版本,格式如下

    3. 判断是否为IE的某些版本,格式如下

    注意:范围有如下内容

    1) gt:大于

    2) lt:小于

    3) gte:大于等于

    4) lte:小于等于

    5) !:不等于

    CSSHack:

    1. CSS选择器Hack:

    1) *html  选择器{样式声明}:这种写法是专门给IE6使用的

    2) *+html  选择器{样式声明}:这种写法是专门给IE7使用的

    2. CSS属性Hack:

    3. !important关键字的使用:该关键字可以提升样式的优先级,格式:属性名:属性值!important,注意设置了!important关键字的属性值不会被覆盖,而且它的样式会优先应用

    相关文章

      网友评论

          本文标题:html和css部分常见兼容性问题

          本文链接:https://www.haomeiwen.com/subject/sxoctftx.html