2013-09-02 8 views
6

संरेखित नहीं करते हैं div के बीच में संरेखित करने के लिए मेरे पास div के अंदर दो span तत्व हैं।दो अवधि तत्व लंबवत

<div class="position"> 
    <span class="yours">Your current position:</span> 
    <span class="name">New York</span> 
</div> 

शैली:

.position{ 
    height:70px; 
    background-color:gray; 
} 
.position span{ 
    line-height:70px; 
} 
.position .name{ 
    font-size:28px; 
} 

Live Demo

आप देख सकते हैं, span.yours बीच में नहीं है।

और अगर मैं शैली को दूर:

.position .name{ 
    font-size:28px; 
} 

यह काम करेंगे।

समस्या क्या है?

+0

मेरे लिए ठीक लग रहा है -

इस मामले में सरल उपाय middle साथ प्रारंभिक मूल्य ओवरराइड करने के लिए है। आपको किस ब्राउज़र में परेशानी हो रही है? – JohnFx

उत्तर

19

समस्या तथ्य यह है कि दोनों बच्चों baseline की एक प्रारंभिक ऊर्ध्वाधर- align मूल्य में निहित है (जैसा कि सभी करते हैं तत्व जो inline-formatting context में भाग लेते हैं) - इसलिए फ़ॉन्ट आकार को बढ़ाने पर, .yours अपने इनलाइन भाई के baseline के साथ गठबंधन बना हुआ है। fiddle

.position span { 
    vertical-align: middle; 
} 
+3

मुझे इस जवाब में जोड़ना चाहिए कि वास्तव में 'रेखा-ऊंचाई' एक इनलाइन तत्व जैसे 'span' में एक बेकार संपत्ति है। – Sunyatasattva

+1

@ सुनीसात्त्व: यदि मैं 'रेखा-ऊंचाई' को हटा देता हूं तो 'span' मध्य में संरेखित नहीं होगा। – hguser

4

उपयोग स्थिति को नियंत्रित करने ऊर्ध्वाधर संरेखण:

.position span { vertical-align:middle;} 

यहाँ परिणाम है: http://jsfiddle.net/WDfyr/3/

संबंधित मुद्दे