2010-03-12 14 views
8

के दाईं ओर एक इनलाइन तत्व फ़्लोट करना मैं div के दाईं ओर एक इनलाइन तत्व को सही-संरेखित करना चाहता हूं। मैंने फ़्लोट = "दाएं" को सही तरीके से संरेखित करने के लिए एक स्पैन पर लागू किया है लेकिन यह मेरे लिए अर्थात् गलत लगता है क्योंकि फ्लोट को "बक्से" को स्थानांतरित करना या तत्वों को अवरोधक तत्व के दाएं या बाएं स्थानांतरित करना होता है।एक div

क्या फ़्लोट गलत की मेरी समझ है या एक कंटेनर डीआईवी में इनलाइन तत्वों को सही-संरेखित करने का दूसरा तरीका है।

+0

एक और मुद्दा जो मैंने फ़्लोट पर एक स्पैन का उपयोग किया है, यह है कि हम फ्लोट का उपयोग करते हैं: एक चौड़ाई निर्दिष्ट किए बिना एक स्पैन पर जो फिर फ्लोट की आवश्यकताओं के खिलाफ जाता है। असल में, मैं इनलाइन तत्व की खींचती संपत्ति का उपयोग करना चाहता हूं क्योंकि यह सामग्री की चौड़ाई लेता है जो मेरे मामले में गतिशील है। एक डीवीवी में कनवर्ट करना उस लाभ को खो देता है। – Rajat

उत्तर

5

एक तत्व फ़्लोटिंग स्वचालित रूप से इसे एक बॉक्स में बनाता है। (देखें: http://css.maxdesign.com.au/floatutorial/introduction.htm) हालांकि, इसके बारे में अर्थपूर्ण रूप से गलत कुछ भी नहीं है। सेमेन्टिक्स निर्देश नहीं देते कि ब्लॉक के रूप में क्या प्रदर्शित किया जाना चाहिए और इनलाइन को क्या प्रदर्शित किया जाना चाहिए - यही कारण है कि हम मनमाने ढंग से घोषणा कर सकते हैं। (यह निश्चित रूप से गन्दा बन जाता है जब आप अपने आदेश से शब्दों को लेना शुरू करते हैं - लेकिन मुझे संदेह है कि आप यहां किस बारे में बात कर रहे हैं, क्योंकि मैं उस मामले की कल्पना नहीं कर सकता जब आप और करना चाहते हैं यह इनलाइन रहती है।)

इसके अलावा, यदि आपको सामान्य पाठ (जो एक फ्लोट करता है) के प्रवाह से स्वतंत्र इनलाइन टेक्स्ट को संरेखित करने की आवश्यकता है, तो आप वास्तव में इसे किसी ब्लॉक के रूप में प्रदर्शित करना चाहते हैं। यदि यह वास्तव में एक इनलाइन तत्व है, तो आपको केवल text-align:right की आवश्यकता है - आपको किसी फ़्लोट की आवश्यकता है या आप पर घोषित स्थिति पहले से ही ब्लॉक तत्व के रूप में व्यवहार कर रही है, इसलिए इसे घोषित करने में कुछ भी गलत नहीं है।

+0

लेकिन चौड़ाई के बिना फ्लोट का उपयोग करने की अनुशंसा नहीं की जाती है और इसमें मैं अपनी चौड़ाई = सामग्री और इसलिए इनलाइन तत्व चाहता हूं? तो, यदि मेरा तत्व फ़्लोट के साथ एक ब्लॉक तत्व है, तो चौड़ाई निर्दिष्ट चोट नहीं होगी? – Rajat

+1

@राजत चौड़ाई निर्दिष्ट नहीं है इसका मतलब है कि डिफ़ॉल्ट रूप से आपकी फ्लोट सबसे लंबे शब्द के आकार में घट जाएगी। आप श्वेत-स्थान का उपयोग कर सकते हैं: उस व्यवहार को ओवरराइड करने के लिए अब्रैप - फिर यह आपकी सामग्री के जितना चौड़ा होगा। (इसलिए यदि आपको इसे लपेटने की आवश्यकता है तो बीआर में रखना सुनिश्चित करें।) –

6

float: right पूरी तरह से सभी तत्वों, ब्लॉक-स्तर या इनलाइन पर लागू होता है, इससे कोई फर्क नहीं पड़ता, या तो अर्थात् या spec के अनुसार (जहां तक ​​मुझे पता है)। (यह मानते हुए

आप float का उपयोग किए बिना सही-align कुछ करना चाहते हैं तो वहाँ margin-right: 90%; की संभावना है आप जानते हैं कि अन्य 10% में/से दाएँ संरेखित यह क्या है फिट के खिलाफ।

या direction: rtl; लेकिन वह कभी नहीं काम करता है जैसे मुझे लगता है कि यह चाहिए, इसके साथ ही यह जटिल चीजों की संभावना होगी।

position: absolute; right: 0; आपको आवश्यकता होगी जैसा कि आपको चाहिए (लेकिन इसे दस्तावेज़ के प्रवाह से हटा दिया जाएगा, और इसे अपने मूल तत्वों के पहले स्थान पर रखा जाएगा एक परिभाषित position: relative; (या कम से कम position) परिभाषित किया गया है।

आप संभवतः text-align: right का उपयोग कर सकते हैं, लेकिन ऐसा लगता है कि यह इतना आसान समाधान है कि मुझे यकीन है कि आप इसे पहले ही कोशिश कर चुके हैं।

यदि आप एक उपयोग-मामला प्रदान कर सकते हैं, तो कुछ कोड और आपके अपेक्षित अंत परिणाम का एक संकेत हम आपकी मदद करने में सक्षम हो सकते हैं।