2011-10-08 10 views
7

मैं एक 3 कॉलम सीएसएस लेआउट के लिए देख रहा हूँ, बीच में 1 निश्चित अनुभाग और यह लगभग 2 द्रव साइडबार के साथ:3 कॉलम द्रव फिक्स्ड तरल लेआउट कैसे बनाएं?

http://www.uploadup.com/di-UEFI.png

बीच 250px चौड़ाई (उदाहरण के लिए) और साइडबार (कम से कम राशि है) 150 पीएक्स चौड़ाई। यदि ब्राउज़र चौड़ाई 550px (250 + 300) से अधिक लंबी थी, तो साइडबार की लंबी चौड़ाई होनी चाहिए। (और मध्य हमेशा 250px है)

सीएसएस क्या कर सकता है? सभी ब्राउज़रों में संगतता के साथ।

टिप्पणी: मैं this page देखा था, लेकिन मैं नहीं जानता कि कैसे मेरी इच्छा

+0

मैं इसे "सभी ब्राउज़रों" ले IE7 भी शामिल है। क्या इसमें आईई 6 भी शामिल है? – thirtydot

+0

हां, लेकिन मैं यानी – mrdaliri

+1

के लिए एक अन्य सीएसएस फ़ाइल का उपयोग कर सकता हूं, शायद ही कभी यह कहता है, लेकिन आपको वास्तव में लोगों को यह करने के लिए लोगों से पूछने के बजाय सीएसएस सीखना चाहिए। कारण यह है कि आपको समझ में नहीं आता कि आपको सीएसएस को कैसे संशोधित करना है। सीएसएस ऐसा कुछ है जो आप इसे सीखने के लिए समय बिताने का भुगतान करेंगे। –

उत्तर

8

आप इसके लिए inline-block रों इस्तेमाल करने की कोशिश कर सकते हैं। उनका उपयोग शायद ही कभी किया जाता है, लेकिन कभी-कभी वे लेआउट के लिए बहुत अच्छे होते हैं।

तो, इसे देखें: http://jsfiddle.net/kizu/UUzE9/ - inline-block के साथ आप किसी भी निश्चित और तरल कॉलम के साथ लेआउट बना सकते हैं। एल्गोरिदम:

  1. सबसे पहले, आप रैपर को सभी निश्चित कॉलम के योग के बराबर पैडिंग जोड़ते हैं। आपके मामले में - 250px
  2. फिर, आप सभी तरल कॉलम की न्यूनतम चौड़ाई के बराबर रैपर में min-width जोड़ते हैं।
  3. फिर, आप white-space: nowrap रैपर में जोड़ते हैं, इसलिए कॉलम कूद नहीं पाएंगे।
  4. और फिर बस आपको आवश्यक सभी कॉलम जोड़ें।

आप IE7 और के लिए समर्थन की जरूरत है कम, वहाँ कुछ ऐसी बातों का आम inline-block ठीक के अलावा पता करने के लिए कर रहे हैं:

  1. आप एक स्तंभ के भीतरी बच्चे को white-space: normal लौटना चाहिए, या स्तंभों जीता एक लाइन पर नहीं रहना।
  2. आईई में एक प्रेत स्क्रॉल दिखाई दे सकता है, शायद इसे हटाने का एक बेहतर तरीका है, लेकिन मैं कुछ रैपर पर overflow: hidden का उपयोग करता हूं।

का आनंद लें :)

+0

20 मिनट पहले मुझे नहीं लगता था कि यह आईई 6 में काम करेगा, लेकिन ऐसा करता है। यह सही है अगर कॉलम बराबर ऊंचाई नहीं है। – thirtydot

+0

हाँ, हालांकि यह दुख की बात है कि आपको अतिरिक्त रैपर और ओवरफ़्लो की आवश्यकता है: केवल आईई के लिए छिपा हुआ है। – kizu

+0

मुझे divs के बीच प्रदर्शित सफेद सीमाएं मिलती हैं। इससे कैसे बचा जा सकता है? (पहेली में TidyUp का उपयोग करके पुन: उत्पन्न किया जा सकता है और कोड फिर से चलाएं) – purbsel

1

के लिए इसे बदलने के लिए आप वहाँ तैयार टेम्पलेट्स में से एक का उपयोग नहीं करते हैं, तो
आप तीन से शुरू कर सकते हैं div छोड़ दिया मंगाई चौड़ाई के साथ बीच: 250px और min-width: 150px
साथ बाहर वाले आप <section> टैग से बदलने के लिए चाहते हो सकता है, बस इसे एक display: block

+0

और उन्हें कैसे रखा जाए? चौड़ाई फ्लोट और मार्जिन? वहां से – mrdaliri

+0

, यह आपके पर निर्भर करता है। उन वास्तविक दृश्य शैलियों पर निर्भर करता है जिन्हें आप लागू करना चाहते हैं। –

+0

मेरी समस्या है (खराब अंग्रेजी के लिए खेद है) मुझे नहीं पता कि मैं उन्हें कैसे रख सकता हूं। और मुझे किस शैलियों का उपयोग करना चाहिए। – mrdaliri

4
थी बनाने के

देना जावास्क्रिप्ट के बिना आईई 6/7 में काम करता है, ऐसा करने का सबसे आसान तरीका table के साथ है।

मुझे पता है, मुझे पता है। यह नहीं है कि इस मामले में बुरा, सभी मानते हैं।

देखें:http://jsfiddle.net/thirtydot/Q2Qxz/

IE6/7 + क्रोम में परीक्षण किया गया, और यह सिर्फ अन्य सभी आधुनिक ब्राउज़रों में काम करेंगे।

HTML:

<table id="container" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td id="left">fluid</td> 
     <td id="mid">fixed</td> 
     <td id="right">fluid</td> 
    </tr> 
</table> 

सीएसएस:

html, body { 
    margin: 0; 
    padding: 0; 
    border: 0 
} 
#container { 
    border: 0; 
    table-layout: fixed; 
    width: 100% 
} 
#container td { 
    vertical-align: top 
} 
#mid { 
    width: 250px; 
    background: #ccc 
} 
#left { 
    background: #f0f 
} 
#right { 
    background: #f0f 
} 
+0

धन्यवाद; लेकिन यह 'div' के साथ संभव नहीं हो सकता है? – mrdaliri

+0

मैं ऐसे तरीके से सोच सकता हूं जो आईई 7 में काम करेगा, लेकिन * आईई 6 में काम नहीं करेगा जो "div 'का उपयोग करता है। क्या आप चाहते हैं कि मैं इसे पोस्ट करूं? – thirtydot

+0

ओह, और एक और सवाल: क्या कॉलम बराबर ऊंचाई होना चाहिए? – thirtydot

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