关于内层DIV设置margin-top不起作用的解决方案
关于内层DIV设置margin-top不起作用的解决方案
(一)
近日在做另外一个站点的时候,又遇到这个问题,决定好好的研究解决一下。
代码如下:
<div>上部层</div>
<div> <!--父层-->
<div style="margin-top:200px;">子层</div>
</div>
理想中的效果是父层和上部层贴边显示,子层距离父层顶部有200px的距离,在ie中正常,但是在ff中却出现问题,子层和父层贴边了,而父层和上部层却间隔了200px。
百思不得其解,求助google,得到如下的一句:
当两个容器嵌套时,如果外层容器和内层容器之间没有别的元素,firefox会把内层元素的margin-top作用与父元素。
也就是说因为子层是父层的第一个非空子元素,所以使用margin-top会发生这个错误。
解决的办法有两个:
1、使用浮动来解决,即将子层代码改为:<div style="margin-top:200px;float:left";>子层</div>
2、使用padding-top来解决,即:
<div style="padding-top:200px;">
<div>子层</div>
</div>
(二)
常常可以碰到这样一个问题,就是外层DIV设置了高与宽,内层DIV如果设置maring-top不起作用(FIREFOX和IE8中测试),原因大致是内层div没有获得布局。如下面的代码:
<style>
.aDiv {background:red; width:300px; height:300px; }
.bDiv {background:green; position:relative; width:100px; height:20px; margin-top:10px;}
.cDiv {background:black; position:relative; width:100px; height:20px;}
</style>
<div class="aDiv">
<div class="bDiv"></div>
<div class="cDiv"></div>
</div>
测试发现,bDiv的margin-top不起作用,仍是0px的显示效果。如果在firefox中用firebug查看,可以看到margin-top是有值的,为10px;解决问题如下:
1、把margin-top改成padding-top,不过,前提是内层的Div没有设置边框
2、给外层的Div加padding-top
3、给外层DIV加:
A、float: left或right
B、position: absolute
C、display: inline-block或table-cell或其他 table 类型
D、overflow: hidden或auto
比如,可以更改上述代码如下:
<style>
.a {background:red; width:300px; height:300px; float:left; }
.b {background:green; position:relative; width:100px; height:20px; margin:10px;}
.c {background:black; position:relative; width:100px; height:20px;}
.clear{ clear:both;}
</style>
<div class="a">
<div class="b"></div>
<div class="c"></div>
</div>
<div class="clear"></div>
注意:后面要加一个清除浮动。
相关文章
- OpenOffice3.0以服务方式运行在Windows平台(文件转换服务器解决方案)
- 芯动科技高性能计算“三件套”IP解决方案行业领先,满足新一代SoC带宽需求
- 档案信息数字化管理解决方案——档案管理系统
- ChatGPT 常见错误原因及解决方案:报错、回答不完整等
- Xmarks不能同步或连接被重置解决方案(修改hosts)
- 【Android 屏幕适配】屏幕适配通用解决方案 ⑥ ( 约束布局 ConstraintLayout 百分比布局方案 | 将设计稿尺寸自动转为约束布局百分比标签属性 | 将输出结果设置到组件标签中 )
- Android横竖屏切换View设置不同尺寸或等比例缩放的XML解决方案详解手机开发
- Javac编译时出现包不存在的报错的解决方案详解编程语言
- Linux文件夹覆盖解决方案(linux文件夹覆盖)
- MySQL单表备份与恢复解决方案(mysql单表备份)
- MySQL连接本地数据库:一种新的电商解决方案(mysql连接本地数据库)
- 模式SQL Server 构建基于单例模式的高效解决方案(sqlserver 单例)
- MySQL 数据库1005错误解决方案(mysql 1005)
- MySQL字段设置为不允许NULL值的问题解决方案(mysql不能为null)
- Redis重启解决方案设置自动化脚本(redis 重启脚本)
- jquery乱码与contentType属性设置问题解决方案
- 将inputfile的选择的文件清空的两种解决方案