电脑爱好者之家

当前位置: 主页 > 开发资料 > 网页设计教程 >

CSS布局教程:绝对定位和相对定位(3)

时间:2012-12-12 13:28来源:未知 作者:熊猫蜀黍 点击:
#e# 2. 仅使用 margin 属性布局绝对定位元素的情况 此情况,margin-bottom 和margin-right的值不再对文文件流中的元素产生影响,因为该元素已经脱离了文文件流。另外,不管它的祖先元素有没有定位,都是以文档流中原
#e#
2.仅使用margin属性布局绝对定位元素的情况
此情况,margin-bottom 和margin-right的值不再对文文件流中的元素产生影响,因为该元素已经脱离了文文件流。另外,不管它的祖先元素有没有定位,都是以文档流中原来所在的位置上偏移参照物。
图9中,使用margin属性布局相对定位元素。
层级关系为:
<div ——————————— position:relative; 不是参照物
  <div—————————-没有设置为定位元素,不是参照物
    <div———————-没有设置为定位元素,不是参照物
      <div box1
      <div box2 ——–position:absolute; margin-top:50px; margin-left:120px;
      <div box3
效果图:

图9
IE6的情况下,box2前面没有兄弟节点,则margin-left的值会出现双倍边距,见图10。
层级关系为:
<div ——————————— position:relative; 不是参照物
  <div—————————-没有设置为定位元素,不是参照物
    <div———————-没有设置为定位元素,不是参照物
      <div box1
      <div box2 ——–position:absolute; margin-top:50px; margin-left:60px;
      <div box3
效果图:

图10
3.混合使用leftrighttopbottom属性与margin属性布局相对定位元素的情况
a.margin属性和top、bottom、left、right属性同时使用,如果同一方向偏移,它们的值会产生累加的效果,见图11。
例如:margin-left:120px; left:-20px; 那么box2的偏移值为120px-20px=100px;
层级关系为:
<div ———————————-不是参照物
  <div—————————–不是参照物
    <div———————–position:relative; 参照物
      <div box1
      <div box2 ———position:absolute; margin-left:120px; left:-20px; top:50px;
      <div box3
效果图:

图11
b.绝对定位和相对定位的累加加效果不同,如果top、bottom、left、right属性和margin属性偏移的方向相反,top、bottom、left、right属性值有效,反方向的margin属性值无效,见图12。
层级关系为:
<div ———————————-不是参照物
  <div—————————–不是参照物
    <div———————–position:relative; 参照物
      <div box1
      <div box2 ———position:absolute; margin-left:120px; right:10px; top:50px;
      <div box3
效果图:

图12
总结:
  • 相对定位的元素不会脱离文文件流,占用文档流的空间,Left; Right; Top和Bottom属性与margin属性混合使用会产生累加效果。
  • 绝对定位的元素脱离文文件流,偏移不影响文文件流中的其它元素,Left; Right; Top和Bottom属性与margin属性混合使用,偏移方向相同值累加,方向相反,margin属性值无效。
  • 绝对定位的元素以最近的定位祖先元素为参照物。
 
(责任编辑:熊猫蜀黍)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容