2009-07-03 23 views
9

मेरे पास एक ऐसा फॉर्म है जहां वेबसाइट के ब्रांड के आधार पर दो इनपुट फ़ील्ड में से एक को किसी दिए गए स्थान पर दिखाना चाहिए।सीएसएस के माध्यम से इनपुट अदृश्य बनाओ?

मुझे लगा कि मैंने केवल एक ही कंटेनर में दोनों इनपुट फ़ील्ड्स डाले हैं और फिर मेरी स्टाइलशीट के माध्यम से उनमें से एक को प्रदर्शित करने के लिए सेट किया गया है: none; यह फ़ील्ड को छुपाता है, लेकिन यह अभी भी इसे स्थान लेता है। मैंने ऊंचाई और चौड़ाई को 0 पर सेट करने या छुपे हुए या पतन के लिए दृश्यता सेट करने का भी प्रयास किया लेकिन उनमें से कोई भी काम नहीं किया।

अब तक सभी ब्रांडिंग चीजें सीएसएस स्टाइल शीट के साथ की जा सकती हैं, इसलिए मैं इसे इस तरह से रखना चाहूंगा। समाधान कम से कम IE6 & अप, फ़ायरफ़ॉक्स 2 & ऊपर और क्रोम (नवीनतम) में समर्थित होना चाहिए।

+1

आप बिल्कुल सर्वर-साइड कोड का उपयोग कर रहे हैं? यदि ऐसा है, तो आप शैलियों या स्क्रिप्ट के साथ इसे करने के बजाय सशर्त रूप से एक या दूसरे क्षेत्र को प्रस्तुत कर सकते हैं। –

+0

हां, यही वह है जो मैं अब कर रहा हूं। लेकिन जैसा कि मैंने उल्लेख किया है, मैं ब्रांडिंग को केवल सीएसएस में रखना चाहता हूं। अब मुझे दोनों विचारों में स्टाइलशीट के रूप में ब्रांडिंग बनाए रखना है। –

+0

आप केवल सीएसएस में ब्रांडिंग परिवर्तन क्यों रखना चाहते हैं? सीएसएस का उपयोग केवल स्टाइल के लिए किया जाता है - यदि आपके ब्रांडिंग में एचटीएमएल की संरचना को बदलना शामिल है तो इसे संभालने के लिए उपयुक्त जगह HTML में है। – edeverett

उत्तर

7

अदृश्य इनपुट फ़ील्ड को position: absolute; पर सेट करने के बारे में क्या है जो इसे प्रतिपादन प्रवाह से बाहर ले जाना चाहिए।

हालांकि, यह display: none के लिए सेटिंग सिद्धांत रूप में भी ऐसा ही करना चाहिए ...

+0

डिस्प्ले: कोई भी चाल नहीं करता है। स्थिति के साथ संयोजन में: पूर्ण हालांकि यह किया। आपको लगता है कि आप मुझे स्पष्टीकरण प्रदान कर सकते हैं क्यों? –

+0

स्थिति: निरपेक्ष रेंडर प्रवाह से कोई भी तत्व ले जाएगा, जिससे इसके आसपास के किसी अन्य तत्व पर इसका कोई प्रभाव नहीं पड़ता है। यह ओवरले और मोडल के लिए एक बहुत ही आम तरीका है। – peirix

+0

शायद यह बहुत पुराना है, यह अब और काम नहीं करता है (दुर्भाग्य से टी.टी.) –

0

मैं सीएसएस से बहुत परिचित नहीं हूं, लेकिन आप को कार्यान्वित करने का प्रयास कर सकते हैं जो जावास्क्रिप्ट और सीएसएस को जोड़ती है ताकि आपको सापेक्ष आसानी से सामान मिल सके।

+2

मुझे पता है, लेकिन यदि संभव हो तो मैं जेएस पर भरोसा नहीं करता क्योंकि यह नो-जेएस मशीनों पर भी चलाएगा। –

+0

ओह ठीक है! मैं StackOverflow पर एक नौसिखिया हूँ, तो क्या मुझे अपना जवाब हटा देना चाहिए? धन्यवाद! –

+0

नहीं, बस वैसे ही रखें। यह एक वैध उत्तर है, बस सबसे अच्छा नहीं;) –

13

आप इनपुट type="hidden" इनपुट का उपयोग क्यों नहीं करते?

+3

यह अच्छा होगा। आदर्श रूप से उपयोगकर्ता को प्रस्तुत एचटीएमएल को सीएसएस की आवश्यकता के बिना समझ में आना चाहिए। – edeverett

+0

यह स्टाइलशीट और विचारों पर मेरे ब्रांडिंग तर्क फैल जाएगा। अब मुझे एक के बजाय दो स्थानों पर ब्रांडिंग तर्क बनाए रखने की जरूरत है। –

+0

त्वरित लाभ के लिए उपयोग की जा रही तकनीकों में चिंताओं को अलग करने के लिए शायद ही कभी आसानी से बनाए रखने योग्य कोड का मार्ग है। – edeverett

4
<style> 
.hideme 
{ 
    display:none; 
    visibility:hidden; 
} 
.showme 
{ 
    display:inline; 
    visibility:visible; 
} 
</style> 


<input type="text" name="mytext" class="hideme"> 

आप या तो अपना नियंत्रण दिखाने के लिए अपना नियंत्रण या वर्ग = "शोमे" छुपाने के लिए कक्षा = "हिडेम" सेट कर सकते हैं। आप जावास्क्रिप्ट या सर्वर साइड कोडिंग का उपयोग करके यह टॉगलिंग सेट कर सकते हैं।

+4

यह दृश्यता: छुपा हुआ, दृश्यमान नहीं: झूठा, और यह दृश्यता: दृश्यमान, दृश्यमान नहीं: सत्य। –

+0

हाँ, दाएं ... माफ करना ... यह एक टाइपो – Bhaskar

+0

था, कृपया मेरे पोस्ट –

3

यह फ़ील्ड को छुपाता है, लेकिन यह अभी भी स्थान लेता है।

ऐसा नहीं होना चाहिए; प्रदर्शन: तत्व को प्रवाह में शामिल नहीं किया जाना चाहिए। अपने बाकी सीएसएस की जांच करें (फ़ायरबग का उपयोग करके यह पता लगाने के लिए कि अतिरिक्त "स्पेस" कहां है, जो शायद आसपास के तत्व के पैडिंग या मार्जिन से आ रहा है)।

+0

मुझे लगता है, यह एकमात्र तरीका है जिसे आप सीएसएस का उपयोग करके कर सकते हैं (जैसा कि सवाल बताता है) ... – Bhaskar

0

दृश्यता गुण का उपयोग करना तत्व को दिखाई देने पर भी प्रतिपादन स्थान लेता है। दृश्यता का उपयोग करने के बजाय आपको प्रदर्शन संपत्ति का उपयोग करना होगा।

यदि आप ब्लॉक या इनलाइन अगर आप उन्हें दिखाना चाहते हैं तत्व और प्रदर्शन को छिपाना चाहते हैं प्रदर्शनकिसी से सेट कर सकते हैं।

प्रदर्शन की जांच this

यदि आपका प्रदर्शन संपत्ति आपकी समस्या का समाधान नहीं करता है की स्थापना पर एक नजर है करने के लिए, तो मैं बक्सें बिल्कुल तैनात किया जा सकता है लगता है। लेआउट को बदलने के लिए यह कारण हो सकता है।

क्या आप पूरा कोड पोस्ट कर सकते हैं?

संबंधित मुद्दे