利用div进行页面的布局2(position属性)

本文分析了一个HTML页面中元素定位出现问题的原因,并提供了相应的解决方案。详细解释了如何通过调整CSS属性来修正元素的位置,确保它们正确地显示在表格内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、请看下面的HTML代码

 1None.gif<HTML>
 2None.gif<HEAD>
 3None.gif<TITLE>Position </TITLE>
 4None.gif</HEAD>
 5None.gif<BODY>
 6None.gif<table border=1>
 7None.gif    <tr>
 8None.gif        <td >
 9None.gif            <textarea id="textareaInput" style="font-family: Tahoma; font-size: 11px;" cols="35" rows="3"/></textarea>
10None.gif        </td>
11None.gif        <td width='300' align='right' >
12None.gif            <DIV id=senddiv  style="WIDTH: 70px; HEIGHT: 41px;">
13None.gif                <IMG id=btnSendOut style="WIDTH: 70px; POSITION: absolute; HEIGHT: 41px" src="windows_button_bg.gif">
14None.gif                <div id=divSendOut style="WIDTH: 70px; POSITION: absolute; HEIGHT: 41px;line-height:41px" align='center' >Send</div>
15None.gif            </DIV>
16None.gif        </td>
17None.gif    </tr>
18None.gif</table>
19None.gif</div>
20None.gif</BODY>
21None.gif</HTML>

二、运行的结果

 三、问题
     为什么img(id为btnSendOut)和文字div(id为divSendOut)出现在table外了呢?
四、原因
    img和文字div都用的绝对(position:absolute)位置,但都没有设置left和top属性,这样会根据当前的HTML位置来确定left和top属性。上级容器是个div(id为senddiv)中,此div延续上级td的align属性,这样当前位置应在div的右边。于是img和文字div从div(id为senddiv)的右边开始显示,由于都是绝对的,脱离HTML的显示,所以都会超出table外。
五、解决方案
      找到了原因,解决起来就容易了。我们只需要把div(id为senddiv)的align属性设置为left就可以了。因为img,div(id为divSendOut),div(id为senddiv)的大小都是一样的。

六、另外的问题(层的居中问题)
      对于把字符串"Send"居中在div(id为divSendOut)中间,我们可以设置div的line-height属性(注意该属性的单位)和height属性一样就可以了。但是如果需要居中的不是文字,而且其它的对象,例如另一个div,则就需要利用脚本来控制了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值