我有以下问题。 我想在文章部分中有标题(位置:固定)和一些文本,并在此之间划分一些空格。
我的CSS代码:
header
{
position: fixed
margin-bottom: 10px; // <-- space I'd like to have
}
我的HTML代码:
<body>
<header> HEADER </header>
<article> SAMPLE TEXT</article>
</body>
但现在它看起来像标题和文章是重叠的。
http://jsfiddle.net/LvKSm/embedded/result/
那么如何在这个部分之间留出这个空间/边距?
答案 0 :(得分:2)
您需要在margin
代码
article
header {
background: #ddd;
position: fixed;
top: 0;
/* width: 100%; */ /* You would probably need this */
}
article {
margin-top: 50px;
}
Demo (您创建的小提琴的更新演示版)
一些解释,您在margin-bottom
标记上使用header
,这是一个fixed
position
元素,现在当您进行任何元素修复时,它就会脱离文档流程,您的margin
不会对文档中的任何元素产生任何影响。
另外请记得对top: 0;
元素使用header
,或者在margin-top
上使用article
时,也会使用header
元素。< / p>
P.S使用
//
进行评论无效,您需要使用/* Comment goes here */
答案 1 :(得分:1)
This可能就是你想要的。您需要在header
后面的元素上设置一个余量,其值等于标题+ 10.您必须这样做,因为元素header
的位置fixed
“已删除“它来自文档的自然流程,即它将位于其余内容的顶部,而其他内容则忽略它。因此,article
会忽略标题的位置并占据其位置。
header {
position: fixed;
height: 100px;
width: 100%;
background: red;
top: 0;
}
article {
width: 100%;
margin-top: 110px; /* height header + 10px */
background: blue;
}
如果标题的高度是动态的,您可以使用jQuery(或JS)设置文章的margin-top。 Fiddle
$("article").css({
"margin-top": $("header").height() + 10
});
编辑:我编辑了您的Fiddle,现在效果很好。
答案 2 :(得分:0)
这里最好的做法是在你的身体标签上涂抹衬垫。 SEE THE DEMO
body {padding-top: 120px;}
同时也不要忘记将top: 0;
提供给header
标记,因为它有固定的位置,这也是为什么margin-bottom不适合它的原因。