1,浏览器默认样式
问题:
有些浏览器默认会给一些标签添加一些样式,并且不同浏览器添加的样式不相同,这样会导致我们布局的页面在不同浏览器发生错乱
解决:
清除默认样式,保证在每个浏览器样式统一
body,p,ul,h1,h2,h3,h4,h5,h6,ol,dl,dd,form,input,ul,ol{
margin:0;
padding:0;
list-style:none;
font-weight:normal;
}
img{border:none;}
2,img标签底部间隙问题
问题:
div中包含一张图片,底部可能有2px,4px或更多的间隙,不同的font-size会影响这个间隙的大小。
解决:
1.将图片的垂直对其方式vertical-align,值为top或者bottom
2.将图片转换为块元素display:block
3.将包含图片的父容器的字体大小设置为0,font-size:0
3,img标签IE下图片有边框
问题:
html图片img加了超链接之后产生蓝色边框(IE6~10)
解决:
img{border:none;}
4,margin上下边框合并问题
问题:
两个div容器,如果同时给上下两个div都加外边框的话,会发生边框合并
div{
border: 1px solid gray;
width: 100px;
height: 100px;
}
div.one{
margin-bottom: 30px;
}
div.two{
margin-top: 50px;
}
one和two相距50px
解决:
只给一个容器调整外边框即可,不要同时给两个
5,IE6双倍边距bug
问题:
当我们给元素添加浮动的并指定左外边距的时候,IE5,6会出现双倍边距
div.outer{
width: 100px;
height: 100px;
margin-left: 10px;
float:left;
display: inline;
}
解决:
给浮动的元素指定display:inline;
6,父容器(子元素浮动)高度为0
问题:
父元素的高度不确定,且子元素个数不确定,而且还是float会引发父元素高度为0问题,浮动的子元素层级高于父元素导致撑不开父元素的高度
解决:
在使用float元素的父元素结束前加一个高度为0宽为0且有clear:both样式的空DIV
<div style="clear:both;"></div>
在父元素上添加overflow:hidden
7,IE6不支持固定定位
解决:
div{
width:100px;
height:100px;
border:1px solid gray;
position:fixed;
bottom:20px;
right:30px;
/*---ie6---*/
position:absolute;
top:expression(eval(document.documentElement.scrollTop+200));
}
*html{
background-image:url(blank:about);
background-attachment:absolute;
}
8,CSS hack
.bb{
background-color:#f1ee18;/*所有识别*/
background-color:#00deff\9;/*IE6,7,8识别*/
+background-color:#f1ee18;/*IE6,7识别*/
_background-color:#f1ee18;/*IE6识别*/
}