2012-05-13 22 views
5
<div style="width: 800px; height: 600px"> 

    <div style="float:left; width: 100px"> 
     left fixed-width column 
    </div> 
    <div style="???"> 
     right stretching column (the width should be 700px in this case.) 
    </div> 

</div> 

दो कॉलम लेआउट बनाने का मानक तरीका क्या है जहां बायां एक निश्चित आकार है और दायां एक फैला हुआ है?एचटीएमएल सीएसएस: चौड़ाई और खिंचाव चौड़ाई दो कॉलम लेआउट

  • मुझे लगता है कि दोनों कॉलम शैलियों स्वतंत्र हैं। मुझे यहां कुछ समाधान मिले, लेकिन यदि मैं बाएं कॉलम की चौड़ाई बदलता हूं, तो दाएं कॉलम की शैली (उदा। मार्जिन) को इसके साथ बदलना होगा।

  • मुझे पुराने ब्राउज़र का समर्थन करने की आवश्यकता नहीं है। यदि यह मानक है, तो यह ठीक है।

उत्तर

2

दूसरे div में overflow: hidden लागू करें। यह एक नया block formatting context पेश करेगा। आप Can overflow:hidden affect layout? में कुछ और जानकारी पा सकते हैं।

jsFiddle Demo

+0

सरल और सुरुचिपूर्ण समाधान! – user1392013

+0

@ user1392013 अगर आप संतुष्ट हैं, तो आप मेरे उत्तर के बाईं ओर टिकमार्क के साथ अपना जवाब स्वीकार कर सकते हैं। – kapa

+0

** आपको ओवरफ़्लो सेट करने के बारे में बहुत सावधान रहना चाहिए: छुपा ** ... याद रखें कि यह आवंटित क्षेत्र से परे विस्तारित होने पर सामग्री को छुपाएगा! यहां तक ​​कि यदि आपके पास निश्चित मात्रा में सामग्री होगी, तो उपयोगकर्ताओं के पास कुछ ब्राउज़र डिस्प्ले पर नियंत्रण होता है जो आपके लेआउट को प्रभावित कर सकते हैं, जैसे फ़ॉन्ट आकार। यदि उपयोगकर्ता ने अपने फ़ॉन्ट आकार को अधिक आरामदायक पढ़ने के लिए बढ़ा दिया है, तो यह आवंटित स्थान की तुलना में आपके दाएं div की सामग्री को प्रस्तुत कर सकता है और "ओवरफ़्लो: छुपा" का अर्थ यह होगा कि यह उस उपयोगकर्ता को दिखाई नहीं देगा। क्या यह बदलने के लिए अतिरिक्त सीएसएस मूल्य के लिए ग्राहकों को अलगाव करना उचित है? – FluffyKitten

0

तुम भी (और, एक ब्लॉक के रूप में उन्हें केंद्र यदि आप चाहें) एक div उपयोग कर सकते हैं दोनों स्तंभ रैप करने के लिए - तो, ​​पहले कॉलम की चौड़ाई निर्धारित करने और बनाने के लिए दूसरे स्तंभ पर पूर्ण स्थिति का उपयोग इसकी बाएं सीमा पहले कॉलम के किनारे और रैपर के किनारे की दाहिनी सीमा है।

<div style="width:auto; min-width:500px; margin:30px; position:relative; top:0px;"> 

<div style="width:100px; height:100px; padding:15px; background-color:aqua;"> 
</div> 

<div style="height:100px; padding:15px; position:absolute; top:0px; left:100px; right:0px; background-color:blue;"> 
</div> 

</div> 

JSFiddle

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