1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

CSS教程——元素定位

本帖由 不学无术2006-04-20 发布。版面名称:前端开发

  1. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    1. position:static|无定位
    position:static是所有元素定位的默认值, 一般不用注明,除非有需要取消继承的别的定位
    example:
    HTML:
    #div-1 {
     position:static;
    }
    2. position:relative|相对定位
    使用position:relative,就需要top,bottom,left,right4个属性来配合,确定元素的位置。
    如果要让div-1层向下移动20px,左移40px:
    example:
    HTML:
    #div-1 {
     position:relative;
     top:20px;
     left:40px;
    }
    如果用到相对定位,紧随他的层divafter是不会出现在div-1的下方,而是和div-1在同一个高度出现。
    [​IMG]

    可见, position:relative;并不是很好用。

    3. position:absolute|绝对定位
    使用position:absolute;,能够很准确的将元素移动到你想要的位置,
    让我将 div-1a 移动到页面的右上角:
    example:
    HTML:
    #div-1a {
     position:absolute;
     top:0;
     right:0;
     width:200px;
    }
    使用绝对定位的div-1a层前面的或者后面的层会认为这个层并不存在,丝毫不影响到他们。所以position:absolute;用于将一个元素放到固定的位置很好用,但是如果需要div-1a层相对于附近的层来确定位置就不要实现了。
    *这里有个Win IE的bug需要提到,就是如果为绝对定位的元素定义一个相对的宽度,那么在IE下它的宽度取决于父元素的宽度而不是整个页面的宽度。

    4. position:relative + position:absolute|绝对定位+相对定位

    如果给父元素(div-1)定义为position:relative;子元素(div-1a)定义为position:absolute,那么子元素(div-1a)的位置将相对于父元素(div-1),而不是整个页面。
    让div-1a定位于div-1的右上角:
    example:
    HTML:
    <div id="div-1">
      <div id="div-1a">
      this is div-1a element.
      </div>
    this is div-1 element.
    </div>#div-1 {
     position:relative;
    }
    #div-1a {
     position:absolute;
     top:0;
     right:0;
     width:200px;
    }
    5. two column layout|两列布局
    让我们实践position:relative + position:absolute的理论,实现两列布局。
    example:
    HTML:
    <div id="div-1">
      <div id="div-1a">this is the column-one</div>
      <div id="div-1b">this is the column-two</div>
    </div>#div-1 {
     position:relative;/*父元素相对定位*/
    }
    #div-1a {
     position:absolute;/*子元素绝对定位*/
     top:0;
     right:0;
     width:200px;
    }
    #div-1b {
     position:absolute;/*子元素绝对定位*/
     top:0;
     left:0;
     width:200px;
    }
    注意,在这个例子中会发现夫元素的告诉不会随着子元素的告诉变化,所以如果父元素的背景和边框需要定义一个足够高的高度才能显示出来。

    6.float|浮动对齐
    使用float定位一个元素有float:left;&float:right;两种值。这种定位只能在水平坐标定位,不能在垂直坐标定位。而且让下面的元素浮动环绕在它的左边或者右边。
    example:
    HTML:
    #div-1a {
     float:left;
     width:200px;
    }
    7.make two clumn with float|浮动实现两列布局
    如果让一个元素float:left;另一个float:right;控制好他们的宽度,就能实现两列的布局效果。
    example:
    HTML:
    #div-1a {
     float:left;
     width:150px;
    }
    #div-1b {
     float:left;
     width:150px;
    }
    8.clear float|清除浮动
    如果你不想让使用了float元素的下面的元素浮动环绕在它的周围,那么你就使用clear,clear有三个值,clear:left;(清除左浮动),clear:right;(清除右浮动),clear:both;(清除所有浮动)。
    example:
    HTML:
    <div id="div-1a">this is div-1a</div>
    <div id="div-1b">this is div-1b</div>
    <div id="div-1c">this is div-1c</div>#div-1a {
     float:left;
     width:190px;
    }
    #div-1b {
     float:left;
     width:190px;
    }
    #div-1c {
     clear:both;
    }
    至此,这个css的定位部分就结束了,你可以动手体会体会加深印象。

    转载自:http://www.jluvip.com/blog/article.asp?id=205 (greengnn)
     
  2. kamsang

    kamsang New Member

    注册:
    2005-10-05
    帖子:
    9,080
    赞:
    58
    收藏了...这个讲的比手册里详细...
     
  3. Kevin

    Kevin New Member

    注册:
    2005-10-23
    帖子:
    12,728
    赞:
    55
    收藏!
     
  4. BoBo

    BoBo New Member

    注册:
    2005-09-29
    帖子:
    929
    赞:
    0
    :xizao:
     
  5. 西子宜

    西子宜 Well-Known Member

    注册:
    2005-09-05
    帖子:
    15,739
    赞:
    62
    收藏,正需要
     
  6. Hoofei

    Hoofei New Member

    注册:
    2005-12-10
    帖子:
    3,162
    赞:
    35
    楼主的帖子都是精华!收藏!
     
  7. 链链不舍

    链链不舍 New Member

    注册:
    2006-01-14
    帖子:
    386
    赞:
    2
  8. 流氓兔

    流氓兔 New Member

    注册:
    2005-09-27
    帖子:
    905
    赞:
    3
    :belial: 又学了不少
     
  9. srsman

    srsman Active Member

    注册:
    2005-11-08
    帖子:
    1,920
    赞:
    6
    希望楼主写下去!
     
  10. 禾火木风

    禾火木风 New Member

    注册:
    2006-03-15
    帖子:
    2,212
    赞:
    8
    greengnn —— 没记错应该是经典的版主吧
     
  11. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    定位中,还有一个值是 fixed ,即固定。类似于背景图片的固定,滚动页面的时候,设置为固定定位的内容会在窗口中保持一个位置不变。

    不过 IE 不支持这个。
     
  12. 小宝

    小宝 New Member

    注册:
    2006-02-19
    帖子:
    267
    赞:
    1