2008-12-16 9 views
5

का उपयोग कर रहा divs कि सभी एक ही ऊंचाई होना चाहिए की एक पंक्ति है, लेकिन मैं यह जानकर क्या है कि ऊंचाई समय से आगे हो सकता है का कोई तरीका नहीं एक ही ऊंचाई हो (सामग्री एक से आता है वाह्य स्रोत)। मैंने शुरुआत में divs को एक संलग्न div में रखने की कोशिश की और उन्हें छोड़ दिया। फिर मैंने अपनी ऊंचाई "100%" निर्धारित की, लेकिन इसका कोई समझदार प्रभाव नहीं पड़ा। एक निश्चित ऊंचाई तक enclosing div पर ऊंचाई की स्थापना करके मैं तो जारी divs विस्तार करने के लिए मिल सकता है, लेकिन केवल कंटेनर की निश्चित ऊंचाई पर निर्भर है। जब एक divs में सामग्री निश्चित ऊंचाई से अधिक हो गया, यह खत्म हो गया; फ्लोटेड divs विस्तार करने से इंकार कर दिया।बनाना सभी divs की एक पंक्ति सीएसएस

मैं इस जारी-divs ऑफ द एक ही ऊंचाई समस्या Google पर और जाहिरा तौर पर वहाँ सीएसएस का उपयोग कर यह करने के लिए कोई रास्ता नहीं है। तो अब मैं फ्लोट्स के बजाय रिश्तेदार और पूर्ण स्थिति के संयोजन का उपयोग करने की कोशिश कर रहा हूं।

<style type="text/css"> 
div.container { 
    background: #ccc; 
    position: relative; 
    min-height: 10em; 
} 
div.a { 
    background-color: #aaa; 
    position: absolute; 
    top: 0px; 
    left: 0px; 
    bottom: 0px; 
    width: 40%; 
} 
div.b { 
    background-color: #bbb; 
    position: absolute; 
    top: 0px; 
    left: 41%; 
    bottom: 0px; 
    width: 40%; 
} 
</style> 

यह HTML का एक सरलीकृत संस्करण है:

<div class="container"> 
    <div class="a">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer pretium dui sit amet felis. Integer sit amet diam. Phasellus ultrices viverra velit.</div> 
    <div class="b">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer pretium dui sit amet felis. Integer sit amet diam. Phasellus ultrices viverra velit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer pretium dui sit amet felis. Integer sit amet diam. Phasellus ultrices viverra velit.</div> 
    </div> 

यह काम करता है जब तक आप 5em की तरह कुछ करने के लिए न्यूनतम-ऊंचाई बदलने (demonstranting जब सामग्री से अधिक है कि क्या होता है यह सीएसएस है न्यूनतम ऊंचाई), और आप देख सकते हैं कि पाठ कटऑफ नहीं मिलता है, divs अभी भी विस्तार करने से इनकार करते हैं। अब मैं हार गया हूँ। क्या सीएसएस का उपयोग करके ऐसा करने का कोई तरीका है?

+2

* खांसी *

* खांसी * ;-) –

उत्तर

2

उन्हें बिल्कुल एक ही ऊंचाई बनाना एक मुश्किल बात हो सकती है, लेकिन अगर उन्हें केवल एक ही ऊंचाई दिखाई देनी है, तो आप faux columns तकनीक को देखना चाहेंगे।

मैं कुछ अन्य तरीकों की कोशिश की है, लेकिन इस सबसे विश्वसनीय रास्ता नहीं मैं निश्चित रूप से तालिकाओं का उपयोग से प्रभावी हो रही है, के अलावा के पाया है है।

1

आप जावास्क्रिप्ट का उपयोग कर सकते हैं, लेकिन बिना जावास्क्रिप्ट सक्रिय निश्चित रूप से यह टूट जाएगा। फिर टेबल हैं, लेकिन यह सीएसएस के बिंदु को खंडित करता है। शायद seanb's answer, काम कर सकता था कि भ्रम है कि सभी स्तंभों नीचे करने के लिए जाना बनाता है एक पृष्ठभूमि छवि जगह। यह अशुद्ध पृष्ठभूमि तकनीक के रूप में जाना जाता है।

या तंग बैठते हैं और display: table-cell के लिए प्रतीक्षा सभी/सबसे ब्राउज़रों के लिए समर्थन की।

10

यहाँ उन क्षणों जहां आदर्शवादी या यथार्थवादी होने के बीच अटक जाते हैं कर सकते हैं में से एक है। मैं समझता हूँ कि सख्ती से कारणों फ़ॉर्मेट करने के लिए एक तालिका में गैर सारणीबद्ध डेटा रखने के लिए कोई अर्थ मूल्य नहीं होता है कि लेकिन मैं आप बस अपने लिए इस समस्या का एक गैर सारणीबद्ध समाधान बनाने के लिए पीछे की ओर झुकने को देखने के लिए नहीं करना चाहती।

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

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

जो भी चुनें, अपने लिए एक मानक का पालन नहीं करते हैं।

+1

अच्छी तरह से कहा गया है कि यदि आप किसी तालिका का उपयोग करते हैं तो किसी को चोट पहुंच जाएगी ... – seanb

0

जवाब के लिए धन्यवाद, दोस्तों। मुझे नहीं लगता कि पृष्ठभूमि छवि काम करेगी क्योंकि कॉलम की चौड़ाई भी अलग-अलग कॉलम के आधार पर भिन्न हो सकती है (उपयोगकर्ता इसे बदल सकता है)।मुझे लगता है कि मैं टेबल का उपयोग करूंगा :(

+0

टेबल्स यह है! यदि आप कुछ वर्षों के दौरान इसके बारे में वास्तव में बुरा महसूस करते हैं, तो आप उन्हें divs पर स्विच कर सकते हैं और प्रदर्शन का उपयोग कर सकते हैं: टेबल-सेल ... – alex

1

ठीक है, तालिका की बात थोड़ा सा ट्रिकियर बन गई है, जैसा कि मैंने सोचा था। यह पता चला है कि जावास्क्रिप्ट समाधान वास्तव में सबसे सरल (मेरी स्थिति के लिए) है, क्योंकि मेरा ।

$$('div.container').each(function (element) { 
var longest = 0; 

element.descendants().each(function (child) { 
    if (child.getHeight() > longest) 
    longest = child.getHeight(); 
}); 

element.descendants().each(function (child) { 
    child.style.height = longest + 'px'; 
}); 
}); 

धन्यवाद मदद के लिए फिर से

0

अगर आपके एक विशुद्ध सीएसएस विकल्प की तलाश में है, और: एप्लिकेशन एक AJAX अनुप्रयोग है और ढांचे Prototype.js का उपयोग करता है सभी यह लेता जे एस की कुछ लाइनें है। आप सामग्री से ब्लॉक की पृष्ठभूमि को अलग कर सकते हैं तो जवाब दो ब्लॉक के लिए कोड के दो बिट हैं, सामग्री के लिए एक, पृष्ठभूमि के लिए एक। इस तरह यह डॉन है ई:

<div id="wrapper"> 
    <div class="content" id='one> 
    <div class="content" id="two> 
    <div class="content" id="three> 
    <div class="background" id="back-one"> 
    <div class="background" id="back-two"> 
    <div class="background" id="back-three"> 
</div> 

फ्लोट का उपयोग कर सामग्री divs को स्थिति दें। फिर पूर्ण स्थिति (और उन्हें पीछे रखने के लिए एक जेड-इंडेक्स) का उपयोग करके पृष्ठभूमि को स्थिति दें

यह काम करता है क्योंकि फ्लोट ऊंचाई निर्धारित कर सकता है, और बिल्कुल स्थित तत्वों में 100% ऊंचाई हो सकती है। यह थोड़ा गन्दा है, लेकिन नौकरी करता है।

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