博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS的兼容性与BUG处理
阅读量:6236 次
发布时间:2019-06-22

本文共 2769 字,大约阅读时间需要 9 分钟。

骨灰级清除浮动


.clearfix:after {    content: ".";    display: block;    height: 0;    clear: both;    visibility: hidden;    overflow: hidden;    *zoom:1; //兼容ie}

内联元素相连之间存在间隙问题


原因:内联元素是当做字体来处理的,字体之间是有间隔的

解决方法:

1.多个标签写在一行

2.将要闭合标签的地方与开始标签的地方重合

3.使用注释头尾相连

4.在父级上写:font-size:0;

5.使用display:block(img是内联元素)

6.使用letter-spacing属性

块级元素包裹内联元素的时候,总会出现几像素的差问题


asdasdasd

解决方法:设置内联元素属性:display:block;

CSS垂直居中方法


使用时一定要给出元素宽高

width: 200px;        height: 200px;        margin: auto;        position: absolute;        top: 0;        left: 0;        bottom: 0;        right: 0;

CSS Hack


指的是针对不同的浏览器写对应的CSS

有三种hack方式

1.html hack(添加不同的类来区别)

2.选择器 hack

* html .test{color:#090;} /* For IE6 */* + html .test{color:#ff0;} /* For IE7 */

3.属性hack

color:#fff\0; /*:选择IE8+和Opera*/color:#090\9; /* For IE浏览器 */*color:#f00; /* For IE7 */_color:#ff0; /* For IE6 */

ie6.7不支持box-sizing: border-box问题


解决:使用https://github.com/Schepp/box-sizing-polyfill这个垫片,稳定性差

注意:*behavior: url(../resource/js/lab/boxsizing.htc);这个URL是相对于HTML页面的!!

ul中li下面的间隔线用li布局边框问题


在IE低版本下有bug,会多出li的宽高

解决:间隔线使用li的border去做

ie8及以下的浏览器不支持:befor.:after问题


使用left:expression(eval(document.documentElement.scrollLeft))top:expression(eval(document.documentElement.scrollTop))

.leftTop{    position:absolute;    left:expression(eval(document.documentElement.scrollLeft));    top:expression(eval(document.documentElement.scrollTop));}

低版本浏览器下position:fixed闪动问题


解决:

*html{   background-image:url(about:blank);   background-attachment:fixed;}

IE6双倍margin,padding边距的问题


内部元素一旦浮动,就会出现双倍的BUG

解决:给内部元素添加display:inline属性

IE6中设置宽高位10px的时候出现的是长方形问题


这个现象的另一种情况是:在IE6中定义比较小的高度问题。

原因:IE6有默认行高

解决:使用font-size:0;line-height:0;

IE6无法识别伪对象:first-letter/:first-line问题


类似这样解决:

p:first-letter {}

在first-letter与"{"间增加空格

IE6下忽略!important问题


如下写法在IE6下不起作用

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

解决:更改写法

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

父元素与子元素之间的margin-top问题(BFC问题)


现象:给第一个子元素设置margin-top属性后,父元素也会下移

代码示例:

解决:

1、修改父元素的高度,增加padding-top样式模拟(padding-top:1px;常用)

2、为父元素添加overflow:hidden;样式即可(完美)

3、为父元素或者子元素声明浮动(float:left;可用)

4、为父元素添加border(border:1px solid transparent可用)

5、为父元素或者子元素声明绝对定位

元素浮动导致父元素塌陷问题


见例子:

解决方法:

1.给父元素添加overflow:hidden属性

2.给父元素添加清除浮动伪类

.outer:after {        content: ".";        display: block;        height: 0;        clear: both;        visibility: hidden;        overflow: hidden;    }

IE6中li之间会有间距

解决方法:float: left;

IE6挨着的div元素产生3像素差值问题


解决:使用绝对定位然后内补边

相邻的块状元素margin叠加问题(BFC问题)


见例子:

p{        margin-bottom: 100px;        margin-top: 100px;    }... 

asdasdasdas中国

asdasdasdas中国

asdasdasdas中国

结果p直接的margin发生了合并变成了50px。

解决:给最后一个p元素添加left/right浮动,触发BFC。

参考链接:

转载地址:http://fxzia.baihongyu.com/

你可能感兴趣的文章
JavaScript数组与字符串常用方法总结
查看>>
经常使用socket函数具体解释
查看>>
Ubuntu 16.04安装ntopng流量监控软件
查看>>
Mongodb基本操作入门,增删改查和索引
查看>>
UVALive - 4255 - Guess (拓扑排序)
查看>>
UNIX网络编程卷1 时间获取程序client UDP 协议无关
查看>>
一个想法照进现实-《IT连》创业项目:万事开头难
查看>>
【zTree】zTree的3.5.26静态树与动态树(实用)
查看>>
《组合数学》
查看>>
文件操作方法大全以及文件打开的其他一些模式sys.stdout.write()就是标准输出到你当前的屏幕 sys.stdout.flush()把内存立即显示到您当前的屏幕...
查看>>
.NET Core 2.0 开源Office组件 NPOI
查看>>
SNF快速开发平台--规则引擎整体介绍及使用说明书
查看>>
vuex笔记
查看>>
【转】采用dlopen、dlsym、dlclose加载动态链接库
查看>>
【树3】满二叉树、完全二叉树、完美二叉树
查看>>
细说mysql replace into
查看>>
ThinkingInJava 学习 之 0000003 控制执行流程
查看>>
glValidateProgram只用于调试
查看>>
Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
查看>>
二叉排序树 -- 增删查改
查看>>