जवाबों:
line-height:50px;ऊंचाई के बजाय उपयोग करें । यह ट्रिक काम आना चाहिए ;)
इस बात से अवगत रहें कि line-heightयदि आपके पास एक लंबा वाक्य है तो वह विफल हो spanजाता है जिसमें लाइन टूट जाती है क्योंकि पर्याप्त जगह नहीं है। इस स्थिति में, आपके पास संपत्ति में निर्दिष्ट एन पिक्सल की ऊंचाई के साथ अंतराल के साथ दो लाइनें होंगी।
मैं इसमें तब फंस गया जब मैं इसके दाईं ओर लंबवत केंद्रित पाठ के साथ एक छवि दिखाना चाहता था जो एक उत्तरदायी वेब एप्लिकेशन में काम करता है। एक आधार के रूप में मैं एरिक निकस और फेलिप टेडो द्वारा सुझाए गए दृष्टिकोण का उपयोग करता हूं।
यदि आप प्राप्त करना चाहते हैं:
और इस:
.container {
background: url( "https://i.imgur.com/tAlPtC4.jpg" ) no-repeat;
display: inline-block;
background-size: 40px 40px; /* image's size */
height: 40px; /* image's height */
padding-left: 50px; /* image's width plus 10 px (margin between text and image) */
}
.container span {
height: 40px; /* image's height */
display: table-cell;
vertical-align: middle;
}
<span class="container">
<span>This is a centered sentence next to an image</span>
</span>
यदि आपको कई लाइनों की आवश्यकता है, तो यह सबसे आसान तरीका है। spanदूसरे में आप का पाठ लपेटें spanऔर इसके साथ इसकी ऊंचाई निर्दिष्ट करें line-height। कई पंक्तियों को चाल भीतरी रीसेट करने है spanकी line-height।
<span class="textvalignmiddle"><span>YOUR TEXT HERE</span></span>
.textvalignmiddle {
line-height: /*set height*/;
}
.textvalignmiddle > span {
display: inline-block;
vertical-align: middle;
line-height: 1em; /*set line height back to normal*/
}
बेशक बाहरी spanएक divया व्हायावेउ हो सकता है
spanकिसी भी अन्य इनलाइन तत्व की तरह, किसी भी HTML इनलाइन तत्व को शामिल किया जा सकता है । भले ही, मैं ने लिखा है कि textvalignmiddleएक हो सकता है divयदि ऐसा है तो आवश्यक (और आप के लिए यह निर्धारित कर सकते हैं display:inline;का उपयोग कर के लिए इतना खिलाफ यदि आप कर रहे हैं spans)
spanहै सामान्य इनलाइन कंटेनर केवल पाठ किया जा रहा है पर इतना एचटीएमएल और does not संकेत के रूप में के लिए; `यह स्टाइल के उद्देश्यों के लिए समूह तत्वों के लिए इस्तेमाल किया जा सकता है ...`। मैं सुझाव देता हूं कि अपने निजी कोडिंग मानकों को दूसरों पर धकेलने से पहले आप उन्हें तथ्य के रूप में
फ्लेक्सबॉक्स तरीका:
.foo {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
}
.fooएक स्पैन display: flex-inlineबेहतर होगा
मुझे लिंक के लिए इसकी आवश्यकता थी, इसलिए मैंने एक टैग और एक डिव के साथ स्पैन को लपेटा, फिर स्पैन टैग को ही केंद्रित किया
एचटीएमएल
<div>
<a class="tester" href="#">
<span>Home</span>
</a>
</div>
सीएसएस
.tester{
display: inline-block;
width: 9em;
height: 3em;
text-align: center;
}
.tester>span{
position: relative;
top: 25%;
}
सीएसएस ऊर्ध्वाधर केंद्र छवि और पाठ
मेरे पास वर्टिकल इमेज सेंटर के लिए एक डेमो है और मेरे पास फायरफॉक्स, क्रोम, सफारी, इंटरनेट एक्सप्लोरर 9 और 8 पर भी टेस्ट है।
यह बहुत छोटा और आसान css और html है, कृपया नीचे दिए गए कोड की जांच करें और आप स्क्रीनशॉट पर आउटपुट पा सकते हैं।
एचटीएमएल
<div class="frame">
<img src="capabilities_icon1.png" alt="" />
</div>
सीएसएस
.frame {
height: 160px;
width: 160px;
border: 1px solid red;
white-space: nowrap;
text-align: center; margin: 1em 0;
}
.frame::before {
display: inline-block;
height: 100%;
vertical-align: middle;
content:"";
}
img {
background: #3A6F9A;
vertical-align: middle;
}
आउटपुट यहां छवि विवरण दर्ज करें
X को नीचे धकेलने के लिए पैडिंग-टॉप को एक उचित मान सेट करें, फिर ऊंचाई से पैडिंग-टॉप के लिए आपके पास मौजूद मूल्य को घटाएं।