在(x)段和html、css之间留出空格
我想在我的在(x)段和html、css之间留出空格,html,xhtml,space,paragraph,Html,Xhtml,Space,Paragraph,我想在我的内容标记之间留出空间。不在标签之前和之后。我的代码是: <div> <h1>A headline</h1> <p>Some text</p> <p>Some text</p> </div> Something 标题 一些文本 一些文本 某物 我不想要h1和p之间的空间,这是在h1上用零余量完成的。但是我不想在最后一个标记后面留空格。如果没有:last child或一些
内容
标记之间留出空间。不在标签之前和之后。我的代码是:
<div>
<h1>A headline</h1>
<p>Some text</p>
<p>Some text</p>
</div>
Something
标题
一些文本
一些文本
某物
我不想要h1和p之间的空间,这是在h1上用零余量完成的。但是我不想在最后一个
标记后面留空格。如果没有:last child或一些js/jQuery,这可能吗
我无法在最后一个标记上设置class=“last”,因为它是CMS系统。
<div>
<h1>A headline</h1>
<p>Some text</p>
<div class="paragraph-space"></div>
<p>Some text</p>
</div>
标题
一些文本
一些文本
?将默认底部边距设置为p,然后为最后一个标记指定一个没有底部边距的类
p + p {
margin-top: 1.5em;
}
(尽管这需要比IE6更支持CSS的浏览器)
标题
一些文本
一些文本
如果您不需要支持IE6,可以使用:
div, h1, p { margin: 0; }
p + p { margin-top: 12px; }
如果您需要支持IE6,这是一个肮脏的攻击,但它可以在没有Javascript的情况下工作:
div, h1, p { margin: 0; }
h1 { margin-bottom: -12px; }
p { margin-top: 12px; }
这种方法的缺点是,您不能简单地使用,例如,1em作为平衡页边距,因为它们具有不同的字体大小。您可以根据需要手动调整或使用像素宽度。如果要使其更兼容浏览器,还可以使用:
p { margin-top: 24px; }
h1 { margin-bottom: -24px; } // play with this value as necessary
负边距会将元素拉向它们。这比我喜欢的更混乱,但是当你任由CMS生成的代码摆布而无法添加类时,你必须要有创造性。我不能这样做,因为文本是用CMS呈现的。好吧,那么,将页边距顶部设置为“div p”,将负页边距底部设置为“div h1”如何?我还没有测试过它,但使用p+p的cletus解决方案对IE7+来说效果很好。那就行了。。。我希望;)谢谢:)太好了,我试试看。我的目标是IE7+、Chrome、Safari 4+、FireFox 2+,谢谢你的回复,但我无法用那种方式控制文本。(CMS)谢谢你的回复,但我不能用那种方式控制文本。(CMS)但最后一种方法的问题是,如果我在h1之后有一个列表,那么它们将互相浮动。我将使用IE7+。如果您可以使用IE7+,那么您将被排序。我只是为了完整性而指出这一点,因为很多人仍然需要支持IE6(遗憾的是)。此外,值得指出的是,我不建议对所有div都这样做。我会关联一个类来放置在div上,在那里你想这样做,在那里你知道内容的格式,以避免出现你提到的情况。列表问题后面的相同标题与使用+选择器有相同的问题。
p { margin-top: 24px; }
h1 { margin-bottom: -24px; } // play with this value as necessary