CSS3 के फ्लेक्स और ग्रिड आइटम इन मुद्दों से निपटने के लिए की अपेक्षा की जाती है, लेकिन मानक समर्थन 2013
असली दुनिया के लिए वापस के रूप में असमान बनी हुई है। मुझे नहीं लगता कि यह पूरी तरह से सीएसएस 2 में करना संभव है।पिक्सेल हैक्स के बिना 1 (आईई 8 +)। बात यह है कि पाठ संरेखण मूल तत्व द्वारा नियंत्रित होता है, और चूंकि दोनों एंकर अपने माता-पिता को साझा करते हैं, इसलिए वे दोनों बाएं या दाएं को संरेखित करते हैं। और औचित्य अंतिम पंक्ति पर काम नहीं करता है।
1) एक और इनलाइन कि लाइन लपेट, और उसके बाद खाली पंक्ति छिपाने की कोशिश करने के लिए गारंटी है जोड़ें:
आप एक छोटे से अतिरिक्त एचटीएमएल ग्रस्त कर सकते हैं, वहाँ दो दृष्टिकोण हैं। यह आपको पाठ-संरेखण का उपयोग माता-पिता पर उचित ठहराने की अनुमति देता है।
<p>
<a href="#" class="link">link</a>
<a href="#" class="link link-alt">link alt</a>
<span class="boom"></span>
</p>
<style type="text/css">
p {
padding: 20px;
background: #eee;
text-align: justify
}
.link {
display: inline-block;
padding: 10px;
background: #ddd;
}
.link-alt {
padding: 20px;
}
span {
display: inline-block;
height: 0;
width: 100%
}
</style>
पेशेवर: इनलाइन ब्लॉक की किसी भी संख्या पर काम करता है, न केवल दो। केवल थोड़ा अतिरिक्त HTML आवश्यक है।
विपक्ष: टेक्स्ट की आखिरी (खाली) रेखा को छिपाने के लिए अतिरिक्त प्रयास करता है (इसके अंदर इनलाइन ब्लॉक को 0 ऊंचाई पर सेट करने से आपकी मदद नहीं होगी), और आपको मार्जिन या कुछ के साथ बेवकूफ़ बनाना होगा यह वास्तव में काम करने के लिए। आगे की चर्चा: How do I *really* justify a horizontal menu in HTML+CSS?
2) अपने एंकर टैग के शीर्ष पर इनलाइन ब्लॉक की एक और परत जोड़ें और उन्हें 50% आकार दें। फिर आप अनुरोध किए गए अंतिम लेआउट को प्राप्त करने के लिए अलग-अलग टेक्स्ट-एलाइन को लागू कर सकते हैं। यह महत्वपूर्ण है कि दो इनलाइन ब्लॉक के बीच 50% तक के बीच कोई व्हाइटस्पेस की अनुमति नहीं है, या आप लाइन को लपेट लेंगे।
<p>
<span class="left">
<a href="#" class="link">link</a>
</span><span class="right">
<a href="#" class="link link-alt">link alt</a>
</span>
</p>
<style type="text/css">
p {
padding: 20px;
background: #eee;
}
.link {
display: inline-block;
padding: 10px;
background: #ddd;
}
.link-alt {
padding: 20px;
}
span {
display: inline-block;
width: 50%
}
.left {
text-align: left
}
.right {
text-align: right
}
</style>
पेशेवर: बाहरी बॉक्स मॉडल को प्रदूषित किए बिना आपके द्वारा अनुरोध किए गए सटीक लेआउट का उत्पादन करता है।
विपक्ष: केवल दो इनलाइन ब्लॉक के लिए काम करता है (आप इसे विस्तारित करने का प्रयास कर सकते हैं, लेकिन यह वास्तव में जटिल हो जाता है)। कोई अतिरिक्त सफेद जगह नहीं होने पर निर्भर करता है, जो आपके अच्छी तरह से स्वरूपित मार्कअप को खतरे में डाल सकता है।
कारण है कि आप कुछ भी गणना करने के लिए मजबूर किया जाएगा? सही फ़्लोट करें और उन्हें एक ही पैडिंग दें। – thenetimp
बहुत आसान, एक बाधा जिसे मैंने पहले उल्लेख नहीं किया था वह यह है कि मैं डिफ़ॉल्ट लंबवत संरेखण (मध्य) रखना चाहता हूं भले ही मेरे लिंक में एक ही पैडिंग न हो। – inwpitrust
क्या आप CSS3 का उपयोग करने में खुश हैं, या आपको पुराने आईई समर्थन की आवश्यकता है? – Petah