यह कुछ ऐसा है जो मुझे कई बार करने की आवश्यकता है और एक सुसंगत समाधान के लिए अभी भी आपको थोड़ा गैर-अर्थ मार्कअप और कुछ ब्राउज़र विशिष्ट हैक जोड़ने की आवश्यकता है। जब हमें css 3 के लिए ब्राउज़र सपोर्ट मिलता है, तो आप बिना किसी पाप के अपने ऊर्ध्वाधर केंद्र को प्राप्त करेंगे।
तकनीक की बेहतर व्याख्या के लिए आप उस लेख को देख सकते हैं जिसे मैंने इसे अनुकूलित किया है , लेकिन मूल रूप से इसमें एक अतिरिक्त तत्व जोड़ना और IE और ब्राउज़र में विभिन्न शैलियों को लागू करना शामिल है जो position:table\table-cell
गैर-तालिका तत्वों का समर्थन करते हैं।
<div class="valign-outer">
<div class="valign-middle">
<div class="valign-inner">
Excuse me. What did you sleep in your clothes again last night. Really. You're gonna be in the car with her. Hey, not too early I sleep in on Saturday. Oh, McFly, your shoe's untied. Don't be so gullible, McFly. You got the place fixed up nice, McFly. I have you're car towed all the way to your house and all you've got for me is light beer. What are you looking at, butthead. Say hi to your mom for me.
</div>
</div>
</div>
<style>
/* Non-structural styling */
.valign-outer { height: 400px; border: 1px solid red; }
.valign-inner { border: 1px solid blue; }
</style>
<!--[if lte IE 7]>
<style>
/* For IE7 and earlier */
.valign-outer { position: relative; overflow: hidden; }
.valign-middle { position: absolute; top: 50%; }
.valign-inner { position: relative; top: -50% }
</style>
<![endif]-->
<!--[if gt IE 7]> -->
<style>
/* For other browsers */
.valign-outer { position: static; display: table; overflow: hidden; }
.valign-middle { position: static; display: table-cell; vertical-align: middle; width: 100%; }
</style>
ब्राउज़रों के विशिष्ट सेटों में शैलियों को लागू करने के कई तरीके (हैक) हैं। मैंने सशर्त टिप्पणियों का उपयोग किया लेकिन दो अन्य तकनीकों को देखने के लिए ऊपर दिए गए लेख को देखें।
नोट: यदि आप पाठ की एक पंक्ति, या कई अन्य मामलों में केंद्र की कोशिश कर रहे हैं, तो आपको पहले से कुछ ऊंचाइयों को जानने के लिए ऊर्ध्वाधर केंद्र प्राप्त करने के सरल तरीके हैं। यदि आपके पास अधिक विवरण हैं, तो उन्हें फेंक दें क्योंकि एक विधि हो सकती है जिसमें ब्राउज़र हैक या गैर-अर्थ मार्कअप की आवश्यकता नहीं होती है।
अद्यतन: हम CSS3 के लिए बेहतर ब्राउज़र समर्थन प्राप्त करना शुरू कर रहे हैं, दोनों फ्लेक्स-बॉक्स ला रहे हैं और ऊर्ध्वाधर सेंटरिंग (अन्य प्रभावों के बीच) के लिए वैकल्पिक तरीकों के रूप में बदल रहे हैं। आधुनिक तरीकों के बारे में अधिक जानकारी के लिए यह अन्य प्रश्न देखें , लेकिन ध्यान रखें कि CSS3 के लिए ब्राउज़र समर्थन अभी भी स्केच है।