2009-09-23 20 views
6

के बीच एक जगह बनाएं मुझे अपने <p>content</p> टैग के बीच स्थान चाहिए। <p> टैग के बाद पहले और नहीं। एफएक्स मेरा कोड है:पैराग्राफ (एक्स) एचटीएमएल, सीएसएस

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

मुझे एच 1 और पी के बीच की जगह नहीं चाहिए जो एच 1 पर शून्य मार्जिन के साथ किया जाता है। लेकिन मैं पिछले <p> टैग के बाद अंतरिक्ष नहीं चाहता हूं। क्या यह संभव है: आखिरी बच्चा या कुछ जेएस/jQuery?

मैं अंतिम टैग पर कक्षा = "आखिरी" सेट नहीं कर सकता क्योंकि यह एक सीएमएस सिस्टम है।

उत्तर

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

+2

जिस तरह से * किया जाना चाहिए – annakata

+0

अच्छा, मैं कोशिश करूँगा। मैं आईई 7 +, क्रोम, सफारी 4+, फ़ायरफ़ॉक्स 2+ –

+0

पूरी तरह से काम करता हूं :) धन्यवाद। –

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

?

+0

उत्तर के लिए धन्यवाद, लेकिन मैं इस तरह से पाठ को नियंत्रित नहीं कर सकता। (सीएमएस) –

2

पी के लिए एक डिफ़ॉल्ट नीचे-मार्जिन सेट करें, फिर अंतिम टैग को बिना किसी मार्जिन वाले कक्षा को दें।

+0

आईई सुरक्षित तरीका – annakata

+0

मैं ऐसा नहीं कर सकता क्योंकि टेक्स्ट सीएमएस के साथ प्रस्तुत किया जाता है। –

+0

ठीक है, फिर मार्जिन-टॉप को "div p" और नकारात्मक मार्जिन-तल को "div h1" पर सेट करने के बारे में कैसे करें? – da5id

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

उत्तर के लिए धन्यवाद, लेकिन मैं इस तरह से पाठ को नियंत्रित नहीं कर सकता। (सीएमएस) –

4

आप IE6 का समर्थन करने के लिए आवश्यक नहीं कर रहे हैं आप उपयोग कर सकते हैं (हालांकि यह IE6 से बेहतर सीएसएस के लिए समर्थन के साथ एक ब्राउज़र की आवश्यकता है):

div, h1, p { margin: 0; } 
p + p { margin-top: 12px; } 

आप तो आईई 6 का समर्थन करने की आवश्यकता है, यह एक गंदे हैक है लेकिन यह जावास्क्रिप्ट के बिना काम करता है:

div, h1, p { margin: 0; } 
h1 { margin-bottom: -12px; } 
p { margin-top: 12px; } 

इस विधि का नुकसान यह है कि आप संतुलन मार्जिन के लिए 1em का उपयोग नहीं कर सकते हैं क्योंकि उनके पास अलग-अलग फ़ॉन्ट आकार हैं। आप मैन्युअल रूप से आवश्यकतानुसार समायोजित कर सकते हैं या पिक्सेल चौड़ाई का उपयोग कर सकते हैं।

+0

लेकिन आखिरी विधि के साथ समस्या यह है कि अगर मेरे पास एच 1 के बाद एक सूची है तो वे एक-दूसरे में तैर जाएंगे। मैं आईई 7 + के साथ जाऊंगा। –

+0

यदि आप आईई 7 + के साथ जा सकते हैं तो आपको सॉर्ट किया गया है। मैं सिर्फ पूर्णता के लिए इसे इंगित कर रहा हूं क्योंकि कई को अभी भी आईई 6 का समर्थन करने की आवश्यकता है (दुख की बात है)। – cletus

+0

इसके अलावा, यह इंगित करने लायक है कि मैं सभी divs के लिए ऐसा करने का सुझाव नहीं दूंगा। मैं एक कक्षा को उस div को जोड़ने के लिए जोड़ूंगा जहां आप ऐसा करना चाहते हैं जहां आप उल्लेख की स्थिति से बचने के लिए सामग्री के प्रारूप को जानते हैं। सूची चयन के बाद एक ही शीर्षक में + चयनकर्ता का उपयोग करने में एक ही समस्या है। – cletus

0

आप इसे और अधिक ब्राउज़र संगत बनाना चाहते हैं, तो आप भी इस्तेमाल कर सकते हैं:

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

नकारात्मक मार्जिन उनके प्रति तत्व खींच लेंगे। यह मुझे पसंद से गड़बड़ है, लेकिन जब आप कक्षाओं को जोड़ने के लिए सीएमएस उत्पन्न कोड की दया पर हैं, तो आपको रचनात्मक होना होगा।

+0

हां, क्लेटस ने यह भी दिखाया लेकिन धन्यवाद। –