【发布时间】:2014-10-22 14:20:30
【问题描述】:
我在屏幕顶部有一个固定的标题,如果我尝试在标题之后放置一个元素,则该元素最终会忽略标题的高度。
HTML
<header></header>
<p>Empty text</p>
CSS
header {
display: block;
height: 100px;
width: 100%;
background: #eee;
position: fixed;
top: 0;
z-index: 100;
}
我在 StackOverflow 和其他地方搜索过类似问题的解决方案,但无济于事(部分原因是我很难用语言表达具体问题)。我尝试了一个clearfix,
<header></header>
<div style="clear:both"></div>
<p>Empty text</p>
但这仍然行不通。我还尝试将margin-top: 100px 添加到p 元素,但我认为在我将来更改标题的高度的情况下这是不好的做法,并且还必须对标题后面的每个元素执行此操作或任何其他元素我可以添加position: fixed 或position: absolute。另外,header 会根据不同的屏幕大小而流动高度。
现在我正在制作线框图,所以如果可能的话,我真的宁愿不使用 JavaScript,而只使用纯 CSS。如果不是,最小的香草 javascript 就可以了。这是一个基本的网页设计问题,我一直用margin-top 来反驳它,但我想知道是否有人知道更清洁、更好的方式来对抗它。
此外,这至少需要跨浏览器。同样,只有线框图。我的线框应该能够处理任何支持基本 CSS 的东西。
抱歉,如果这是一个重复的问题,我确定是这样,但我找不到任何与我的情况完全匹配的内容。非常感谢任何帮助!
【问题讨论】:
-
我不知道任何替代方案,但 JS/JQ 将是最小的。
-
@Paulie_D 我相信这将是最小的。我猜这是可以接受的,只要我们确定没有纯 CSS 解决方案。好像应该有吧?简单的,根本的问题。呃,好吧。我想我也会接受 Javascript 的答案。 (已编辑)
-
避免必须为标题后面的任何元素单独设置边距的解决方案是使用
header+* {margin-top:100px;}自动设置标题后面元素的边距。但是,如果标题的高度发生变化,这仍然无济于事。
标签: html css layout wireframe fixed-header-tables