2012-04-20 4 views
15

मेरे पास है के साथ एक खोज बॉक्स के लिए निम्नलिखित लेआउट:इनपुट लेख स्वत: चौड़ाई चल अन्य तत्वों के साथ 100% भरने

<div id="emulating_variable_width"> 
    <form id="srxForm" method="post"> 
    <div id="qsrxSearchbar">    
     <div id="scope"> Person Name </div> 
     <input type="text" id="theq" title="Search"> 
     <button id="btnSearch" type="button">Search</button> 
     </div> 
    </form>  
</div>​ 

(इसकी बहुत ज्यादा दिखा प्रयोजनों के लिए सरलीकृत)

  • में शीर्षक 'स्कोप' एक पाठ है जो लंबाई

मुझे क्या पसंद आएगा सभी उपलब्ध स्थान (यानी पीले स्थान) को भरने के लिए इनपुट टेक्स्ट तत्व रखना है, जबकि रखते हुए दाईं ओर स्थित खोज बटन।

Full example with the CSS is in a fiddle

कौन सा सबसे आसान तरीका है एक समाधान IE7 +, एफएफ, सफारी, आदि में काम कर पूरा करने के लिए किया जाएगा ...?

धन्यवाद!

+0

JQuery एक विकल्प नहीं है? – mattytommo

+0

मैं यहां jQuery का उपयोग नहीं करना पसंद करूंगा, हालांकि यदि कोई अन्य विकल्प नहीं है ... हाँ – jmserra

+2

इसका उपयोग करें: http://stackoverflow.com/a/7190310/405015 – thirtydot

उत्तर

31

इस तरह?

डेमो: http://jsfiddle.net/v7YTT/19/

HTML:

<div id="emulating_variable_width"> 
    <form id="srxForm" method="post"> 
     <div id="qsrxSearchbar"> 
      <button id="btnSearch">Search</button>    
      <label id="scope"> Person Name </label> 
      <span><input type="text" id="theq" title="Search" /></span> 
     </div> 
    </form> 
</div>​ 

सीएसएस:

#qsrxSearchbar 
{ 
    width: 500px; 
    height: 100px; 
    overflow: hidden; 
    background-color: yellow; 
} 

#qsrxSearchbar input 
{ 
    width: 100% 
} 

#qsrxSearchbar label 
{ 
    float: left 
} 

#qsrxSearchbar span 
{ 
    display: block; 
    overflow: hidden; 
    padding: 0 5px 
} 

#qsrxSearchbar button 
{ 
    float: right 
} 

#qsrxSearchbar input, .formLine button 
{ 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    box-sizing: border-box 
} 

+0

वोहोहो! काम करने की तरह लग रहा है! लेकिन मुझे यकीन नहीं है कि आखिरी शैली का उद्देश्य क्या है, इस उदाहरण के लिए बोझ-आकार, क्या यह आवश्यक है? बहुत सारे टैंक – jmserra

+0

वास्तव में जरूरी नहीं है, यह "बस-इन-केस" उपयोग से अधिक था, यह बिना काम करेगा। यह सुनिश्चित करना कि सबकुछ सभी ब्राउज़रों में एक तरफ फिट होगा :)। – mattytommo

+0

यदि आप इसे "रिपोस्ट" करने जा रहे हैं तो आप कम से कम मेरे जवाब को ऊपर उठा सकते थे .. ಠ_ಠ – thirtydot

1

अरे आप

<div id="emulating_variable_width"> 
    <form id="srxForm" method="post"> 
     <div id="qsrxSearchbar">    
      <div id="scope"> Person Name </div> 
      <input type="text" id="theq" title="Search"> 
      <button id="btnSearch" type="button">Search</button> 
      </div> 
    </form>  
</div> 

लाइव डेमो इस

Css

#emulating_variable_width{ 
    width:500px; 

    height:100px; 
    background-color:yellow; 
} 
input { 
    width:auto; 
    /*width:100%;*/ 
    float:left; 
    width:100px; 
    font-size: 17px; 
} 
#scope{float:left;} 
button{float:left;} 

input:focus{ 
width:200px; 
} 

HTML की तरह के रूप में इनपुट क्षेत्र में ध्यान केंद्रित करने के गुण के लिए इस्तेमाल किया जा सकता है http://jsfiddle.net/rohitazad/v7YTT/1/

+1

हम्म, यह वही नहीं है जो मुझे वास्तव में चाहिए, i इनपुट फ़ील्ड को सभी उपलब्ध शेष पीले चौड़ाई को भरना चाहते हैं, भले ही उसके पास कोई फोकस नहीं है – jmserra

1

आपको इस तरह कुछ चाहिए:

#emulating_variable_width{ 
    width:500px; 

    height:100px; 
    background-color:yellow; 
} 

input { 
    width:320px; 
    /*width:100%;*/ 
    float:left; 
    font-size: 17px; 
} 
#scope{float:left;} 
button{float:left;} 
+2

बिंदु कुछ लचीला करना था, एक निश्चित चौड़ाई काम नहीं करेगी क्योंकि अंतरिक्ष हमेशा 500px नहीं होगा और लेबल गतिशील रूप से बदल सकता है – jmserra