2016-02-20 7 views
5

पर काम नहीं कर संरेखित मुझसे कहा गया कि:कार्यक्षेत्र इनलाइन-ब्लॉक

कार्यक्षेत्र संरेखित केवल इनलाइन, इनलाइन-ब्लॉक, चित्र, और तालिका तत्वों के लिए काम करता है।
पाठ-संरेखण के विपरीत, मूल तत्व का विरोध करने के रूप में इसे बच्चे तत्व पर लागू किया जाना चाहिए।

हालांकि, जब मैंने एक इनलाइन-ब्लॉक तत्व पर लंबवत संरेखण सेट सेट करने का प्रयास किया, तो यह काम नहीं किया। क्यूं कर?

#wrapper { 
 
border: 1px solid black; 
 
width: 500px; 
 
height: 500px; 
 
} 
 
#content { 
 
border: 1px solid black; 
 
display: inline-block; 
 
vertical-align: middle; 
 
}
<div id = 'wrapper'> 
 
<div id = 'content'> content </div> 
 
</div>

+0

@Oriol मैं बीच का मतलब है। और इससे पहले कि आप पूछें, हाँ, मध्य मान्य मान है। http://www.w3schools.com/cssref/pr_pos_vertical-align.asp और लाइन बॉक्स द्वारा आपका क्या मतलब है? – frosty

+0

@Oriol इसके अलावा, मैं ऐसा करने के लिए एक अलग तरीका नहीं ढूंढ रहा हूं। मैं सिर्फ एक स्पष्टीकरण की तलाश में हूं कि यह क्यों काम नहीं करता है, इसलिए कृपया डुप्लिकेट चिह्न बंद करें। – frosty

+0

@Oriol अगर मैं इसे सही ढंग से समझ रहा हूं, तो क्या आप #content को लाइन बॉक्स के रूप में संदर्भित कर रहे हैं? क्योंकि यहाँ केवल 2 तत्व हैं, #wrapper, और #content। – frosty

उत्तर

14

यह काम नहीं करता है क्योंकि vertical-align इनलाइन-स्तर की सामग्री के संरेखण को उनके लाइन बॉक्स के संबंध में सेट करता है, न कि उनके युक्त ब्लॉक:

यह संपत्ति के लाइन बॉक्स के अंदर लंबवत स्थिति को प्रभावित करती है जो एक इनलाइन-स्तर तत्व द्वारा उत्पन्न बक्से हैं।

एक line box

आयताकार क्षेत्र है कि बक्से है कि एक लाइन

आप कुछ पाठ जो कई पंक्तियों है जब देखने के लिए फार्म होता है, हर एक को एक पंक्ति बॉक्स है। उदाहरण के लिए, यदि आप

p { border: 3px solid; width: 350px; height: 200px; line-height: 28px; padding: 15px; }
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur.</p>

enter image description here

तेज है, तो आपके मामले में की तरह केवल एक ही लाइन है, यह भी एक लाइन बॉक्स

enter image description here

है

vertical-align: middle केंद्र .content वर्टी का उपयोग करना उस लाइन बॉक्स के अंदर कैली। लेकिन समस्या यह है कि रेखा बॉक्स लंबवत रूप से युक्त ब्लॉक के अंदर केंद्रित नहीं है।

आप धारक ब्लॉक के बीच में खड़ी कुछ केंद्र के लिए देख How to align text vertically center in div with CSS?

+0

इसलिए, यदि इसकी गारंटीकृत सिंगल लाइन सामग्री टेक्स्ट और रेखा-ऊंचाई इसकी कंटेनर की ऊंचाई के समान लंबाई है, तो सामग्री टेक्स्ट कंटेनर के बीच में होगा। यानी: '# सामग्री {लाइन-ऊंचाई: 500 पीएक्स}' https://jsfiddle.net/28ng9ovs/ –

+0

@AizzatSuhardi हां, और आप लाइन ब्रेक को रोकने के लिए 'व्हाइट स्पेस: नाओराप' का उपयोग कर सकते हैं। – Oriol

2

इनलाइन/इनलाइन-ब्लॉक तत्व, छवियों, पाठ पर Vertical-align ... एक साथ तत्व संरेखित, माता पिता के साथ नहीं।

प्रयोग उदाहरण: एक पाठ में स्माइली संरेखित

आप एक 0px चौड़ाई जोड़कर धोखा कर सकते हैं, 100% ऊंचाई छद्म तत्व

#wrapper { 
 
    border: 1px solid black; 
 
    width: 200px; 
 
    height: 200px; 
 
    vertical-align: middle; 
 
} 
 
#wrapper:after{ 
 
    content: ''; 
 
    display: inline-block; 
 
    width: 0px; 
 
    height: 100%; 
 
    vertical-align: middle; 
 
} 
 
#content { 
 
    border: 1px solid black; 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
}
<div id = 'wrapper'> 
 
    <div id = 'content'> content </div> 
 
</div>

1

यह ऊर्ध्वाधर- align का उपयोग करके मेरे लिए काम करना चाहते हैं: पाठ शीर्ष;

<div class="box"> 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh 
</div> 
<div class="box"> 
    Lorem ipsum dolor sit amet, diam nonummy nibh 
</div> 
<div class="box"> 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh 
</div> 

.box { 
    display: inline-block; 
    width: 20%; 
    margin: 5px; 
    padding:10px; 
    border-top: 5px solid #000000; 
    vertical-align: text-top; 
} 

jsfiddle

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