दिलचस्प पोस्ट
नोड। जेएस में वादे को समझना PHP क्रमबद्ध सरणी SubArray मान द्वारा अगर ArrayIndexOutOfBoundsFuture <?> और SwingWorker से अपवाद निष्पादक शुरू होता है अप्रत्यक्ष विस्तार क्या है? $ {! Var *} क्या मतलब है? एंड्रॉइड एक्सीलरोमीटर सटीकता (जड़ता नेविगेशन) कैसे तेजी से एक JSON फ़ाइल पार्स करने के लिए? जावास्क्रिप्ट के साथ एचएच-एमएम-एसएसएस के लिए सेकंड कन्वर्ट? जावा स्विंग में मार्की प्रभाव पायथन से एचटीएमएल फ़ाइल से पाठ निकालना वर्तमान स्क्रिप्ट फ़ाइल नाम प्राप्त करें मैं अपने वेब पेज पर सही क्लिक कैसे अक्षम करूं? फ़ॉर्म इनपुट टेक्स्ट फ़ील्ड में अनुमत वर्णों की सीमा सीमा विंडोज हैंडल क्या है? सशर्त रूप से प्रदर्शित JSF घटकों जावास्क्रिप्ट में कई सरणियों का कार्टेशियन उत्पाद

कैसे एक तत्व क्षैतिज और लंबवत केंद्र के लिए?

मैं अपने टैब सामग्री को अनुलंब रूप से केन्द्रित करने की कोशिश कर रहा हूं, लेकिन जब मैं सीएसएस शैली display:inline-flex जोड़ता हूं display:inline-flex , क्षैतिज पाठ-संरेखित गायब हो जाता है।

मैं अपने प्रत्येक टैब के लिए टेक्स्ट एलाइनमेंट्स x और y दोनों कैसे बना सकता हूं?

वेब के समाधान से एकत्रित समाधान "कैसे एक तत्व क्षैतिज और लंबवत केंद्र के लिए?"

  • दृष्टिकोण 1 – translateX ट्रांसएक्स / translateY :

    यहाँ उदाहरण / पूर्ण स्क्रीन उदाहरण

    समर्थित ब्राउज़रों (उनमें से अधिकांश) में, आप top: 50% उपयोग कर सकते हैं top: 50% / left: 50% गतिशील रूप से ऊर्ध्वाधर / क्षैतिज रूप से केंद्र को translateX(-50%) translateY(-50%) साथ संयोजन में।

     .container { position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } 

  • दृष्टिकोण 2 – फ्लेक्सबॉक्स विधि:

    यहाँ उदाहरण / पूर्ण स्क्रीन उदाहरण

    समर्थित ब्राउज़रों में , लक्ष्य तत्वों के display को flex और align-items: center उपयोग align-items: center लिए सेट align-items: center लिए ऊर्ध्वाधर केंद्रिंग और justify-content: center क्षैतिज केंद्रिंग के लिए। बस अतिरिक्त ब्राउज़र समर्थन के लिए विक्रेता उपसर्ग जोड़ने के लिए मत भूलना ( उदाहरण देखें )।

     html, body, .container { height: 100%; } .container { display: flex; align-items: center; justify-content: center; } 

  • दृष्टिकोण 3 – table-cell / vertical-align: middle :

    यहाँ उदाहरण / पूर्ण स्क्रीन उदाहरण

    कुछ मामलों में, आपको यह सुनिश्चित करना होगा कि html / body element की ऊंचाई 100% सेट की गई है

    ऊर्ध्वाधर संरेखण के लिए, मूल तत्व की width / height को 100% और display: table जोड़ें display: table । फिर बच्चे तत्व के लिए, display को table-cell बदलें और vertical-align: middle

    क्षैतिज केंद्रिंग के लिए, आप text-align: center जोड़ सकते हैं text-align: center और पाठ और किसी अन्य inline बच्चों के तत्वों को केन्द्रित करने के लिए। वैकल्पिक रूप से, आप margin: 0 auto इस्तेमाल कर सकते हैं margin: 0 auto , तत्व मान कर block स्तर है।

     html, body { height: 100%; } .parent { width: 100%; height: 100%; display: table; text-align: center; } .parent > .child { display: table-cell; vertical-align: middle; } 

  • दृष्टिकोण 4 – बिल्कुल विस्थापन के साथ शीर्ष से 50% स्थान पर रखा गया है:

    यहाँ उदाहरण / पूर्ण स्क्रीन उदाहरण

    यह दृष्टिकोण मानता है कि पाठ की एक ज्ञात ऊंचाई है – इस उदाहरण में, 18px सिर्फ मूल तत्व के सापेक्ष, ऊपर से 50% तत्व को बिल्कुल स्थान दें। इस मामले में तत्व के ज्ञात ऊँचाई का आधा ऋणात्मक margin-top मान का प्रयोग करें – -9px

     html, body, .container { height: 100%; } .container { position: relative; text-align: center; } .container > p { position: absolute; top: 50%; left: 0; right: 0; margin-top: -9px; } 

  • दृष्टिकोण 5 – line-height विधि (कम से कम लचीली – सुझाई नहीं):

    उदाहरण यहाँ

    कुछ मामलों में, मूल तत्व की एक निश्चित ऊंचाई होगी ऊर्ध्वाधर केंद्रिंग के लिए, आपको केवल मूल तत्व की निश्चित ऊंचाई के बराबर बच्चे तत्व पर एक line-height मान सेट करना होगा।

    यद्यपि यह समाधान कुछ मामलों में काम करेगा, लेकिन यह ध्यान देने योग्य है कि जब पाठ की कई पंक्तियां होंगी तो यह काम नहीं करेगा – जैसे यह

     .parent { height: 200px; width: 400px; text-align: center; } .parent > .child { line-height: 200px; } 

यदि CSS3 एक विकल्प है (या आपके पास फ़ॉलबैक है) तो आप ट्रांसफ़ॉर्म का उपयोग कर सकते हैं:

 .center { right: 50%; bottom: 50%; transform: translate(50%,50%); position: absolute; } 

उपरोक्त पहले दृष्टिकोण के विपरीत, आप बाईं का उपयोग नहीं करना चाहते हैं: नकारात्मक अनुवाद के साथ 50% क्योंकि IE9 + में एक अतिप्रवाह बग है एक सकारात्मक सही मूल्य का उपयोग करें और आप क्षैतिज स्क्रॉलबार नहीं देखेंगे।

दोनों खड़ी और क्षैतिज रूप से एक बॉक्स को केंद्र बनाने का सबसे अच्छा तरीका दो कंटेनरों का उपयोग करना है:

बाहर कंटेनर:

  • display: table; होना चाहिए display: table;

आंतरिक कंटेनर:

  • display: table-cell; होना चाहिए display: table-cell;
  • vertical-align: middle; होना चाहिए vertical-align: middle;
  • text-align: center; होना चाहिए text-align: center;

सामग्री बॉक्स:

  • display: inline-block; होना चाहिए display: inline-block;
  • क्षैतिज पाठ संरेखण को समायोजित करना चाहिए, जब तक आप पाठ को केंद्रित नहीं करना चाहते

डेमो:

 body { margin : 0; } .outer-container { display: table; width: 80%; height: 120px; background: #ccc; } .inner-container { display: table-cell; vertical-align: middle; text-align: center; } .centered-content { display: inline-block; text-align: left; background: #fff; padding : 20px; border : 1px solid #000; } 
 <div class="outer-container"> <div class="inner-container"> <div class="centered-content"> Center this! </div> </div> </div> 

मेरे लिए सबसे सरल और साफ समाधान CSS3 गुण "ट्रांस्फ़ॉर्म" का उपयोग कर रहा है:

 .container { position: relative; } .container a { position: absolute; top: 50%; transform: translate(0,-50%); } 
 <div class="container"> <a href="#">Hello world!</a> </div> 

एक पृष्ठ में डिवेल को केंद्र में रखने के लिए बेला लिंक का पता लगाएं

 #vh { border-radius: 15px; box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); padding: 25px; width: 200px; height: 200px; background: white; text-align: center; margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; } 
 <div id="vh">Div to be aligned vertically</div> 

एक अन्य दृष्टिकोण तालिका का उपयोग करना है:

 <div style="border:2px solid #8AC007; height:200px; width:200px;"> <table style="width:100%; height:100%"> <tr style="height:100%"> <td style="height:100%; text-align:center">hello, multiple lines here, this is super long, and that is awesome, dude</td> </tr> </table> </div> 
  .align { display: flex; width: 400px; height: 400px; border: solid 1px black; align-items: center; justify-content: space-around; } .align div:first-child { width: 20px; height: 20px; background-color: red; position: absolute; } .align div { width: 20px; height: 20px; background-color: blue; } 
  <div class='align'> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> 
  • दृष्टिकोण 6
 /*Change units to "%", "px" or whatever*/ #wrapper{ width: 50%; height: 70vh; background: rgba(0,0,0,.5); position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; } #left{ width: 50%; height: 50vh; position: absolute; top: 0; bottom: 0; left: 0; margin: auto; background: red; } #right{ width: 50%; height: 50vh; position: absolute; top: 0; bottom: 0; right: 0; margin: auto; background: green; } .txt{ text-align: center; line-height: 50vh; } 
 <div id="wrapper"> <div id="left" class="txt">Left</div> <div id="right" class="txt">Right</div> </div> 

इच्छित परिणाम प्राप्त करने के लिए नीचे फ्लेक्स-बॉक्स दृष्टिकोण है I

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Flex-box approach</title> <style> .tabs{ display: -webkit-flex; display: flex; width: 500px; height: 250px; background-color: grey; margin: 0 auto; } .f{ width: 200px; height: 200px; margin: 20px; background-color: yellow; margin: 0 auto; display: inline; /*for vertically aligning */ top: 9%; /*for vertically aligning */ position: relative; /*for vertically aligning */ } </style> </head> <body> <div class="tabs"> <div class="f">first</div> <div class="f">second</div> </div> </body> </html> 

यह कोड स्निपेट चलाएं और एक लंबवत और क्षैतिज रूप से गठबंधन वाले दिवे देखें।

 html, body, .container { height: 100%; width: 100%; } .container { display: flex; align-items: center; justify-content: center; } .mydiv { width: 80px; } 
 <div class="container"> <div class="mydiv">h & v aligned</div> </div> 

बस ऊपर, नीचे, बाएं और दाएं 0 करें

 <html> <head> <style> <div> { position: absolute; margin: auto; background-color: lightblue; width: 100px; height :100px; padding: 25px; top :0; right :0; bottom:0; left:0; } </style> </head> <body> <div> I am in the middle</div> </body> </html> 

खड़ी और क्षैतिज केंद्र के लिए एक तत्व के लिए हम नीचे उल्लिखित गुणों का भी उपयोग कर सकते हैं।

यह सीएसएस प्रॉपर्टी संरेखित करती है- वस्तुओं को लंबवत रूप से और निम्न मान स्वीकार करता है:

फ्लेक्स-शुरू : आइटम कंटेनर के शीर्ष पर संरेखित करें

फ्लेक्स-एंड : आइटम कंटेनर के नीचे संरेखित करें

केंद्र : कंटेनर के ऊर्ध्वाधर केंद्र में आइटम संरेखित करें

बेसलाइन : आइटम कंटेनर की आधार रेखा पर प्रदर्शित होते हैं

खिंचाव : कंटेनर फिट करने के लिए आइटम फैले हुए हैं

यह सीएसएस प्रॉपर्टी पीढ़ी-सामग्री , जो वस्तुओं को क्षैतिज रूप से संरेखित करता है और निम्न मान स्वीकार करता है:

फ्लेक्स-शुरू : आइटम कंटेनर के बाईं ओर संरेखित करें

फ्लेक्स-एंड : आइटम कंटेनर के दाईं ओर संरेखित करें

केंद्र : कंटेनर के केंद्र में आइटम संरेखित करें

अंतरिक्ष-बीच : उन दोनों के बीच समान अंतर के साथ आइटम प्रदर्शित होते हैं।

स्थान-आस-पास : उनके आस-पास समान दूरी के साथ आइटम प्रदर्शित होते हैं।