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

一、请看下面的HTML代码

 1 None.gif < HTML >
 2 None.gif < HEAD >
 3 None.gif < TITLE > Position  </ TITLE >
 4 None.gif </ HEAD >
 5 None.gif < BODY >
 6 None.gif < table  border =1 >
 7 None.gif     < tr >
 8 None.gif         < td  >
 9 None.gif             < textarea  id ="textareaInput"  style ="font-family: Tahoma; font-size: 11px;"  cols ="35"  rows ="3" /></ textarea >
10 None.gif         </ td >
11 None.gif         < td  width ='300'  align ='right'  >
12 None.gif             < DIV  id =senddiv   style ="WIDTH: 70px; HEIGHT: 41px;" >
13 None.gif                 < IMG  id =btnSendOut  style ="WIDTH: 70px; POSITION: absolute; HEIGHT: 41px"  src ="windows_button_bg.gif" >
14 None.gif                 < div  id =divSendOut  style ="WIDTH: 70px; POSITION: absolute; HEIGHT: 41px;line-height:41px"  align ='center'  > Send </ div >
15 None.gif             </ DIV >
16 None.gif         </ td >
17 None.gif     </ tr >
18 None.gif </ table >
19 None.gif </ div >
20 None.gif </ BODY >
21 None.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,则就需要利用脚本来控制了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值