给DIV一个样式是:“position: absolute;”,那它下面的DIV就会跑到上面,如何解决?

我写了一个事例,代码如下:<divid="top"style="width:300px;border:solid1px#eee;position:absolute;"><... 我写了一个事例,代码如下:
<div id="top" style="width:300px; border:solid 1px #eee; position: absolute;">
<div id="left" style="float:left; width:100px; text-align:center;">
文档<br />
文档<br />
文档<br />
文档<br />
文档
</div>
<div id="right" style="float:right; width:200px; text-align:center;">
文档<br />
文档<br />
文档<br />
文档<br />
文档<br />
标题<br />
标题
</div>
</div>
<div id="bottom" style="clear:both;">标题</div>

其实我最初的问题是id为top的那个div有一个边框,但是里面的内容是一左一右的(样式分别为:float:left与float:right;)那样这个边框就不能框住左右两边的内容,我无意中发现给id="top"的DIV写一个样式(position: absolute;)之后,边框就出来了(能框住左右两边的内容)。但是呢,id="bottom"的DIV就会跑到上面去。是不是我的方法不对?求解。
注意:id为top、left、right的高度都不能固定(这里的数据不固定)。
展开
 我来答
anizephyr
2012-01-30 · TA获得超过341个赞
知道答主
回答量:60
采纳率:0%
帮助的人:54.8万
展开全部
<div id="top" style="width:302px;border:solid 1px #ff3000;">
<div id="left" style="float:left;width:100px;text-align:center;background-color:blue;">
文档<br />
文档<br />
文档<br />
文档<br />
文档
</div>
<div id="right" style="float:right; width:200px; text-align:center;background-color:yellow;">
文档<br />
文档<br />
文档<br />
文档<br />
文档<br />
标题<br />
标题
</div>
<div style="clear:both;"></div>
</div>
<div id="bottom" style="clear:both;">标题</div>
不知道你top的外层是什么结构,仅仅是你描述的效果,上面的代码就可以。position:absolute你最好还是看一下他的具体作用,你这样“无意中”的使用的话会产生很多意想不到的新问题最后可能会让你的排错更加困难。还有你说高度不固定是啥意思?你的页面不可能无止境的往下延伸吧,你可以定个高度然后在div的style里加个overflow-y:auto
这个问题的本质就是要搞清楚float到底做了什么,当你定义了float,这个元素就脱离了正常的流布局,对于外层的正常流中的元素来说这个元素就好像不存在一样(位置上的),所以top里面2个元素都定义成float后你的top就相当于一个空元素
http://www.w3school.com.cn/css/css_positioning_floating.asp这里有最完美的解答,看行框与浮动
书香学编程
2020-12-17 · 贡献了超过775个回答
知道答主
回答量:775
采纳率:25%
帮助的人:54.7万
展开全部

Vue实践-CSS样式position/display/float属性对比使用

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
herrywood
2012-01-30 · TA获得超过869个赞
知道小有建树答主
回答量:523
采纳率:66%
帮助的人:486万
展开全部
样式 position: absolute; 为绝对位置,与边框无关,计算宽度时要考虑border,padding,margin等因素。你这里top的有1px的边框,所以宽度300px就不够了,将宽度改为302px就可以了。
所以,top行应改为:
<div id="top" style="width:302px; border:solid 1px #eee;">
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
foxaobe
2012-01-30 · TA获得超过331个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:619万
展开全部
在绝对定位的DIV外面在加一个DIV来清除浮动,也就是<div style="clear:both;"></div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangpershing8
2012-01-30 · TA获得超过124个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:148万
展开全部
<div id="top" style="width:300px; border:solid 1px #eee; position: absolute;">
<div id="left" style="float:left; width:100px; text-align:center;">
文档<br />
文档<br />
文档<br />
文档<br />
文档
</div>
<div id="right" style="float:right; width:200px; text-align:center;">
文档<br />
文档<br />
文档<br />
文档<br />
文档<br />
标题<br />
标题
</div>
<div id="bottom" style="clear:both;">标题</div>
</div>

你放错位置了,不知道是不是要放里面的,边框也要算在大小里面的哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式