代码之家  ›  专栏  ›  技术社区  ›  stanleyxu2005

为什么“位置:绝对”时“显示:表格单元格”被破坏?

  •  9
  • stanleyxu2005  · 技术社区  · 15 年前

    我遇到了一个奇怪的问题。我使用DIV作为容器,并将一个图像放入这个分区。我希望这个图像垂直于底部对齐。以下代码有效。

    #banner { 
      width: 700px; 
      height: 90px; 
      top: 60px; 
      left: 178px; 
      overflow: hidden; 
      text-align: center; 
      display: table-cell; 
      vertical-align: bottom; 
      position: relative;
    }
    
    <div id="banner">
      <img src="http://www.google.de/intl/de_de/images/logo.gif"/>
    </div>
    

    但如果我将CSS代码“position:relative”更改为“position:absolute”,图像就不能再与底部对齐。这是萤火虫3吗?我怎样才能解决这个问题?

    我目前的解决方案是:

    <div id="banner">
      <table width="100%" height="100%"><tr><td valign="bottom" align="center">
      <img src="http://www.google.de/intl/de_de/images/logo.gif"/>
      </td></tr></table>
    </div>
    

    但我不喜欢这个解决方案。

    2 回复  |  直到 15 年前
        1
  •  8
  •   RichN    15 年前

    简短回答: 变化

    top: 60px; 
    

    bottom: 60px;
    

    长回答:

    声明 position: absolute 将元素从其所在位置取出,并将其相对于未声明为静态的最内层元素放置。中不再参与任何其他元素的对齐,因此它不再充当表单元(声明无效)。此外,声明如 top: 10px 意味着将它放置在距包含元素顶部那么远的位置。

    将元素声明为 position: relative 做出如下声明 顶部:10px 表示“从当前位置将元素从顶部移动10px”。尽管您应该记住,原始位置仍然决定了其他元素的排列,但是声明的元素可能与其他元素重叠。

    我希望这能回答你的问题。

        2
  •  2
  •   CodeJoust    15 年前

    您还可以尝试设置一个位置:相对;容器,使横幅(横幅位置:相对;IMG位置:绝对)设置为底部:0,将其与容器底部对齐。如果是整页,只需将容器的宽度和高度设置为100%,并删除正文或分区上的额外填充/边距。