आप उपयोग कर सकते हैं line-height: 50px;, आपको vertical-align: middle;वहां जरूरत नहीं होगी ।
डेमो
इसके बाद के संस्करण, यदि आप कई लाइनों है असफल हो जायेगी ताकि मामले में आप का उपयोग कर अपने पाठ लपेट कर सकते हैं spanउपयोग की तुलना में और display: table-cell;और display: table;के साथ vertical-align: middle;, यह भी उपयोग करने के लिए मत भूलना width: 100%;के लिए#abc
डेमो
#abc{
font:Verdana, Geneva, sans-serif;
font-size:18px;
text-align:left;
background-color:#0F0;
height:50px;
display: table;
width: 100%;
}
#abc span {
vertical-align:middle;
display: table-cell;
}
एक अन्य समाधान मैं यहां सोच सकता हूं कि transformसंपत्ति का उपयोग करना है translateY()जहां Yस्पष्ट रूप से वाई एक्सिस के लिए खड़ा है। यह बहुत सीधे आगे है ... आपको बस इतना करना है कि तत्वों की स्थिति absoluteऔर बाद की स्थिति 50%को topनकारात्मक अक्ष के साथ अक्ष से और अनुवाद से सेट करें-50%
div {
height: 100px;
width: 100px;
background-color: tomato;
position: relative;
}
p {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
डेमो
ध्यान दें कि यह पुराने ब्राउज़रों पर समर्थित नहीं होगा, उदाहरण के लिए IE8, लेकिन आप क्रमशः IE9 और क्रोम और फ़ायरफ़ॉक्स के अन्य पुराने ब्राउज़र संस्करणों का उपयोग करके -ms, -mozऔर -webkitउपसर्ग बना सकते हैं।
अधिक जानकारी के लिए transform, आप यहाँ देख सकते हैं ।