关于DIV+CSS浮动问题的汇总[增加中]
2009-08-04 13:52
399 查看
1.
解决边距问题,通常可以在不同的div加上border:1px solid #333;属性。由此来查看,是哪个层被撑开了。
-------------------------------------
ie中最常见的会被撑开的问题,是<div style="clear: both;"></div>
因为ff的float属性会乱,所以我们在每个带有float属性的层排列最后,会加这么一个层,用来将ff的float属性关闭。
但是这个层放在ie6里就会占据一定的间距。解决方案是:
<div style="clear: both;"><div></div></div>
---------------------------------------------------------------------------------------------------------
2.
应用浮动+margin在IE6会出现双倍距离的现象,注意 只是出现在IE6中,通常这种现象可以用_margin来解决,即针对IE6的hack。
---------------------------------------------------------------------------------------------------------
3.
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;
例如: <#div id=”imfloat”>
相应的css为
#IamFloat{ float:left;
margin:5px;/*IE下理解为10px*/ display:inline;/*IE下再理解为5px*/}
也就是加上一句 display:inline就可以。
UL的padding与margin
ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值,所以先定义
ul
{margin:0;padding:0;}
---------------------------------------------------------------------------------------------------------
4.
<ul>
<li><a href="#">胶州店-春季大淘宝 共度二月二</a> <span> [ 2009年2月19日 ]</span> </li>
<li><a href="#">广场店-相“惠”在维客 共度二月二</a> <span> [ 2009年2月18日 ] </span></li>
<li><a href="#">沧口店-欢乐维客购 共度二月二 </a> <span> [ 2009年2月18日 ]</span></li>
<li><a href="#">平度店-二月二龙抬头 大仓满小仓流</a><span> [ 2009年2月18日 ]</span></li>
</ul>
这样一段代码,如果给 span加上float:right;
这样右浮动的时间会下沉一段距离
解法方案:
给li a加个display:inline-block;float:left;属性;
li a{display:inline-block;float:left;}
2.把a标签跟span标签直接对调也能解决问题:
<li><span>[ 2009年2月18日 ]</span><a href="#">沧口店-欢乐维客购 共度二月二</a></li>
原因:标签加上浮动就转为块级元素了
---------------------------------------------------------------------------------------------------------
5.
对于左浮动的元素,它从最右端出发,向左浮动,知道碰到第一个障碍物,把自己放在它旁边
---------------------------------------------------------------------------------------------------------
6.
清楚float的方法:
1,用<div style="clear:both;"></div>放在有浮动的div或者其他元素后面,即可清除浮动,这样会增加html的冗余代码,不做推荐!
2,在外层元素里定义css,如下:
<div class="wrapperElem">
<div class="innerElem"></div>
</div>
css如下:
.wrapperElem{ overflow:hidden; width:auto;}
.innerElem{ float:left;}
这样即可清除innerElem的浮动问题。注意看外层元素的css,如果这里的width去掉的话,会发现在ie6里有问题,如果不写width;加上_height:1%亦可解决
解决边距问题,通常可以在不同的div加上border:1px solid #333;属性。由此来查看,是哪个层被撑开了。
-------------------------------------
ie中最常见的会被撑开的问题,是<div style="clear: both;"></div>
因为ff的float属性会乱,所以我们在每个带有float属性的层排列最后,会加这么一个层,用来将ff的float属性关闭。
但是这个层放在ie6里就会占据一定的间距。解决方案是:
<div style="clear: both;"><div></div></div>
---------------------------------------------------------------------------------------------------------
2.
应用浮动+margin在IE6会出现双倍距离的现象,注意 只是出现在IE6中,通常这种现象可以用_margin来解决,即针对IE6的hack。
---------------------------------------------------------------------------------------------------------
3.
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;
例如: <#div id=”imfloat”>
相应的css为
#IamFloat{ float:left;
margin:5px;/*IE下理解为10px*/ display:inline;/*IE下再理解为5px*/}
也就是加上一句 display:inline就可以。
UL的padding与margin
ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值,所以先定义
ul
{margin:0;padding:0;}
---------------------------------------------------------------------------------------------------------
4.
<ul>
<li><a href="#">胶州店-春季大淘宝 共度二月二</a> <span> [ 2009年2月19日 ]</span> </li>
<li><a href="#">广场店-相“惠”在维客 共度二月二</a> <span> [ 2009年2月18日 ] </span></li>
<li><a href="#">沧口店-欢乐维客购 共度二月二 </a> <span> [ 2009年2月18日 ]</span></li>
<li><a href="#">平度店-二月二龙抬头 大仓满小仓流</a><span> [ 2009年2月18日 ]</span></li>
</ul>
这样一段代码,如果给 span加上float:right;
这样右浮动的时间会下沉一段距离
解法方案:
给li a加个display:inline-block;float:left;属性;
li a{display:inline-block;float:left;}
2.把a标签跟span标签直接对调也能解决问题:
<li><span>[ 2009年2月18日 ]</span><a href="#">沧口店-欢乐维客购 共度二月二</a></li>
原因:标签加上浮动就转为块级元素了
---------------------------------------------------------------------------------------------------------
5.
对于左浮动的元素,它从最右端出发,向左浮动,知道碰到第一个障碍物,把自己放在它旁边
---------------------------------------------------------------------------------------------------------
6.
清楚float的方法:
1,用<div style="clear:both;"></div>放在有浮动的div或者其他元素后面,即可清除浮动,这样会增加html的冗余代码,不做推荐!
2,在外层元素里定义css,如下:
<div class="wrapperElem">
<div class="innerElem"></div>
</div>
css如下:
.wrapperElem{ overflow:hidden; width:auto;}
.innerElem{ float:left;}
这样即可清除innerElem的浮动问题。注意看外层元素的css,如果这里的width去掉的话,会发现在ie6里有问题,如果不写width;加上_height:1%亦可解决
相关文章推荐
- css解决浮动带来的父级div高度不自动增加的问题
- 关于css中两层div的水平垂直居中问题
- css 关于ul在div里居中且平铺的问题
- 关于div+css设置居中问题
- 关于CSS+DIV,浏览器兼容问题的一些心得
- CSS中关于清除浮动的问题
- css关于浮动的问题(导航条的做法)
- div+css布局问题:设置浮动后的div高度变化后不超出最外层div
- 关于css+div margin 居中问题 和边距合并
- 关于CSS+DIV 开发 与各浏览器的兼容性问题及解决方法
- css关于div下ul、li 留白错位问题
- 关于CSS控制DIV水平居中问题
- css中关于div中文本垂直居中的问题。
- 关于写CSS时类似div.ex中间有空格的问题
- CSS+DIV 浮动 空隙问题
- 关于css兼容性问题及一些常见问题汇总
- css 关于ul在div里居中且平铺的问题
- 处理div+css布局左右浮动问题
- 关于CS遇到的浮动的问题:注意DIV的顺序和浮动原理!
- 关于css清除浮动,解决内容溢出的问题