2009-09-23 66 views
6

之間留出空格我希望在我的<p>content</p>標記之間留出空格。不是之前和之後的<p>標籤。 FX我的代碼是:在段落(x)html,css

<div> 
    <h1>A headline</h1> 
    <p>Some text</p> 
    <p>Some text</p> 
</div> 
Something 

我不希望這是與H1零保證金做H1和P之間的空間。但最後<p>標籤後我不想要空間。這可能沒有:最後一個孩子或一些js/jQuery?

我不能在最後一個標記上設置class =「last」,因爲它是一個CMS系統。

回答

14
p + p { 
    margin-top: 1.5em; 
} 

(雖然這需要與CSS比IE6更好地支持瀏覽器)

+2

它應該* *做 – annakata 2009-09-23 06:15:20

+0

不錯的方式,我想試試。我瞄準IE7 +,Chrome,Safari 4+,FireFox 2+ – 2009-09-23 06:17:09

+0

完美作品:)謝謝。 – 2009-09-23 06:21:48

0
<div> 
    <h1>A headline</h1> 
    <p>Some text</p> 
    <div class="paragraph-space"></div> 
    <p>Some text</p> 
</div> 

+0

感謝您的回覆,但我無法控制文本的方式。 (CMS) – 2009-09-23 06:19:17

2

設置一個默認的底部利潤率爲p,然後給最後一個標籤類沒有底利潤。

+0

IE安全方式 – annakata 2009-09-23 06:14:48

+0

我無法這麼做,因爲文本是使用CMS呈現的。 – 2009-09-23 06:16:19

+0

那麼,那麼如何將margin-top設置爲「div p」並將margin-bottom設置爲「div h1」? – da5id 2009-09-23 06:18:39

0
<div> 
    <h1>A headline</h1> 
    <p>Some text</p> 
    <p style="margin-bottom: 0;">Some text</p> 
</div> 
+0

感謝您的回覆,但我無法控制文本。 (CMS) – 2009-09-23 06:18:30

4

如果你不需要支持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作爲平衡邊界,因爲它們有不同的字體大小。您可以根據需要手動調整或使用像素寬度。

+0

但是最後一種方法的問題是,如果我在h1之後列出了一個列表,那麼它們將會漂浮在彼此之間。我將會使用IE7 +。 – 2009-09-23 06:23:31

+0

如果你可以使用IE7 +,那麼你是排序。我只是指出了完整性,因爲許多人確實需要支持IE6(可惜)。 – cletus 2009-09-23 06:30:47

+0

此外,值得指出的是,我不會建議爲所有div進行此操作。如果你想知道內容的格式以避免像你提到的那樣的情況,我會把一個班級放在你想要做這個的div上。列表問題之後的列表問題與使用+選擇器具有相同的問題。 – cletus 2009-09-23 06:43:21

0

如果你想使之更加瀏覽器兼容的,你也可以使用:

p { margin-top: 24px; } 
h1 { margin-bottom: -24px; } // play with this value as necessary 

負利潤率將拉動對他們的元素。它比我喜歡的更混亂,但是當你在CMS生成的代碼的支配下無法添加類時,你必須具有創造性。

+0

是的,cletus也顯示了這個,但是謝謝。 – 2009-09-23 19:25:39