【问题标题】:Position last HTML element at top of page将最后一个 HTML 元素放在页面顶部
【发布时间】:2014-05-10 19:20:27
【问题描述】:

我的布局是这样的:

<body>
  <div id="body"></div>
  <div id="header"></div>
</body>

我想要做的是将具有可变高度的#header 定位在绝对top:0 的页面顶部,并将#body 显示在#header 下方而不是在下方分层。

重要:

  • #header 必须低于标记中的#body
  • #header 必须像在标记中的#body 上方一样显示
  • #header 具有动态可变的高度,因此我无法为 #body 分配固定的顶部填充
  • 我根本不会使用 Javascript,只能是 HTML 和 CSS

【问题讨论】:

  • 好吧,但是为什么你的标题在 body 标签下呢?我想我们应该对你的计划进行一点教育。
  • 你说的是固定位置吗??如果不需要绝对定位,则应该在正文之前添加标题
  • 你为什么要我们做你的功课?
  • @Viscocent 希望这不是“出于 SEO 原因”;我已经看够了这个都市传说... OP:只要#header 具有可变高度(并且它具有:缩放、更改默认字体大小等),就没有确定的方法
  • 糟糕,我错了。 flexbox 可以轻松做到这一点,除了它是 IE10+(还有一个讨厌的 hack display: table-something 我并不为之骄傲......^^)

标签: css html css-position


【解决方案1】:

使用以下代码将绝对顶部位置设置为 0:

#header {
position: absolute;
top: 0;
}

我还建议使用新的 HTML5 &lt;header&gt; 标签而不是 &lt;div id="header"&gt;&lt;/div&gt;

【讨论】:

    【解决方案2】:

    在“dsdev”的答案中,标题不会得到可变高度。

    <div id="body">BODY</div> <div id="header"> HEADER <br /> HEADER <br /> HEADER </div>

    http://jsfiddle.net/uQ2RE/

    我认为没有办法仅使用 html 和 css,因为将 #header 定位在 #body 上方的唯一方法是使用 css 'position' 元素,这不会导致高度可变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      相关资源
      最近更新 更多