2015-09-29 7 views
5

मैं उस वेबसाइट के साथ एक बग को ठीक करने की कोशिश कर रहा हूं जहां शीर्षलेख में दो तत्व होते हैं, एक div बाईं ओर तैरता है और ul फ़्लोट किया गया है।भाई की चौड़ाई बढ़ने पर उत्तरदायी डिज़ाइन

आम तौर पर, दोनों एक दूसरे के बगल में बैठते हैं, लेकिन कभी-कभी ul की सामग्री बड़ी है और दोनों को जोड़ने के रूप में div लाइन पर रहता है लेकिन अगली पंक्ति में ul बूँदें। मैं div पर चौड़ाई बलिदान करके और दो पंक्तियों पर पाठ रखने से इसे रोकना चाहता हूं।

सबसे अच्छा मैं अब तक करने में सक्षम हूं, बाईं ओर div पर चौड़ाई निर्धारित करना है, लेकिन यह केवल दो लाइनों को बनाता है जब इसे केवल तब ही किया जाना चाहिए जब इसे आवश्यकता हो। डिस्प्ले और न्यूनतम/अधिकतम चौड़ाई के आसपास मैंने कोशिश की हर दूसरी चीज पर बहुत अधिक असर नहीं पड़ा है।

मैं यहाँ पूर्ण मार्कअप पोस्ट करेंगे नहीं, लेकिन यह इस

<div id="minibasketAndLogin"> 
    <div id="login"><!--omitted--></div> 
    <ul class="basketLoginList"> 
     <li><!--there are 7 li's in this list--></li> 
     <li></li> 
     <li></li> 
     <li></li> 
     <li></li> 
     <li></li> 
     <li></li> 
    </ul> 
</ul> 

सीएसएस भी बल्कि घुमावदार है की तरह एक छोटे से कुछ हो जाता है तो मैं इसे यहाँ शामिल नहीं किया जाएगा, लेकिन पूरी बात पाया जा सकता है this fiddle में।

मूल रूप से, ul फैलाता है, div को कम करना चाहिए और यह टेक्स्ट को अगली पंक्ति में लपेटना चाहिए।

धन्यवाद

उत्तर

4

मैं इस तरह यह करना होगा - table-cell के रूप में अंदर table और दो तत्वों के रूप में कंटेनर सेट, इसलिए वे हमेशा एक दूसरे के बगल रहना होगा। सूची आइटम को एक पंक्ति पर रखने के लिए, को ul पर सेट करें, और li पर सेट करें।

jsfiddle

#minibasketAndLogin { 
 
    display: table; 
 
    width: 100%; 
 
} 
 
#login, .basketLoginList { 
 
    display: table-cell; 
 
} 
 
.basketLoginList { 
 
    white-space: nowrap; 
 
} 
 
.basketLoginList li { 
 
    display: inline-block; 
 
    border: 1px solid; 
 
}
<div id="minibasketAndLogin"> 
 
    <div id="login">Login as John Doe</div> 
 
    <ul class="basketLoginList"> 
 
     <li>1</li> 
 
     <li>2</li> 
 
     <li>3</li> 
 
     <li>4</li> 
 
     <li>5</li> 
 
     <li>6</li> 
 
     <li>7 bla bla bla bla bla bla bla bla bla bla</li> 
 
    </ul> 
 
</ul>

+0

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

+0

मुझे यह काफी नहीं मिलता है, केवल 'उल' पर है और यह हमेशा दाईं ओर रहता है, क्या आपका मतलब 'li' आइटम है? क्या आपका मतलब है 'सफेद-स्थान: अब्रैप;'? यदि सामग्री के लिए पर्याप्त जगह नहीं है तो वह स्क्रॉलबार को ट्रिगर करेगा। या शायद आप इसे समझाने के लिए एक छवि पोस्ट कर सकते हैं। – Stickers

+0

हां, खेद है कि मेरा मतलब था कि 'ली' तत्वों को एक पंक्ति पर रखना, अधिमानतः चौड़ाई निर्दिष्ट किए बिना, क्योंकि मुझे कभी पता नहीं है कि उपयोगकर्ता कितनी चौड़ाई की आवश्यकता है क्योंकि उपयोगकर्ता पृष्ठों के साथ बातचीत करेंगे, सामग्री बदल जाएगी। मुझे 'ul' और' li' की आवश्यकता होती है ताकि आवश्यक हो सके और 'div' के लिए 'li' को एक पंक्ति पर रखने के लिए स्थान प्राप्त किया जा सके। मैंने आपकी पहेली को http://jsfiddle.net/dashood/2kdydtqk/1/ अपडेट किया है क्योंकि आप परिणाम विंडो की चौड़ाई को कम करते हैं तो 'div' टेक्स्ट को दूसरी पंक्ति में छोड़ देना चाहिए, लेकिन सभी 'li' एकल पर रहें लाइन स्वरूपण। –

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