मैं क्षैतिज रूप से स्पैन या div को कैसे संरेखित करूं?


88

मेरी एकमात्र समस्या उन्हें तीन-पार रेखा बनाना और समान रिक्ति है। जाहिरा तौर पर, स्पैन में चौड़ाई और डिव नहीं हो सकते हैं (और डिस्प्ले के साथ स्पैन: ब्लॉक) क्षैतिज रूप से एक दूसरे के बगल में दिखाई नहीं देते हैं। सुझाव?

<div style='width:30%; text-align:center; float:left; clear:both;'> अब मेरे पास क्या है


2
आप तालिका का उपयोग क्यों नहीं करना चाहते हैं?
DOK

63
क्योंकि डेटा सारणीबद्ध नहीं है।
थॉमस ओवेन्स

10
नीचे दिए गए उत्तर उपयुक्त हैं, लेकिन विचार करें कि यदि आप चीजों को अधिक जटिल बनाते हैं, तो टेबल का उपयोग करने से आपको सिरदर्द कम होगा। यदि यह आपके काम को आसान बना देता है तो तालिका का उपयोग करना ठीक है। व्यावहारिक हो! :-)
राहुल

5
गंभीरता से, तालिका का उपयोग न करें। इस तरह की चीज़ CSS के साथ आसान है।
सैम मुर्रे-सुटन

26
"यह एक तालिका का उपयोग करने के लिए ठीक है अगर यह आपके काम को आसान बनाता है।" है बिल्कुल भयानक सलाह। कृपया उपेक्षा कर दीजिये! :)
बॉबी जैक

जवाबों:


78

आप divs का उपयोग उस float: left;विशेषता के साथ कर सकते हैं जो उन्हें एक दूसरे के बगल में क्षैतिज रूप से दिखाई देगी, लेकिन फिर आपको यह सुनिश्चित करने के लिए कि वे ओवरलैप नहीं करते हैं निम्नलिखित तत्वों पर क्लियरिंग का उपयोग करने की आवश्यकता हो सकती है।


17
दरअसल, आप बस सेट कर सकते हैं overflow: hidden। देखें: stackoverflow.com/questions/323599/…
डेविड वोलेवर

1
मुझे लगता है कि यह बाद के डिव में लेआउट को तोड़ सकता है। उदाहरण के लिए, यदि मैं आपके समाधान का उपयोग करता हूं, और फिर padding-leftदाईं ओर के भाग में प्रयास करता हूं, तो इसे नजरअंदाज कर दिया जाता है।
सेबेस्टियन मच

2
अधिक सोचने का कोई कारण नहीं है: <div style="display: in-line"></div><div style="display: in-line"></div>ठीक काम करना चाहिए।
झोलतार

फ्लोट का उपयोग करने से नई समस्याओं का एक पूरा गुच्छा शुरू होता है। overflow: hiddenसबसे अच्छा समाधान है।
saran3h

39

आप उपयोग कर सकते हैं

.floatybox {
     display: inline-block;
     width: 123px;
}

यदि आपको केवल उन ब्राउज़र का समर्थन करने की आवश्यकता है जिनके पास इनलाइन ब्लॉक का समर्थन है। इनलाइन ब्लॉक में चौड़ाई हो सकती है, लेकिन इनलाइन हैं, बटन तत्वों की तरह।

ओह, और आप ऊर्ध्वाधर-संरेखित करने के लिए wnat कर सकते हैं: तत्वों पर शीर्ष सुनिश्चित करने के लिए कि चीजें ऊपर हैं


1
ऊर्ध्वाधर संरेखण ब्लॉक स्तर के तत्वों पर काम नहीं करता है। इस मामले में हम उन तत्वों के बारे में बात कर रहे हैं जिनका प्रदर्शन इनलाइन-ब्लॉक में सेट किया गया है।
रनहेह

1
इनलाइन-ब्लॉक अब IE6 / 7 को छोड़कर हर A ग्रेड ब्राउज़र में समर्थित है , लेकिन IE6 / 7 में काम करने के लिए इनलाइन-ब्लॉक प्राप्त करने के लिए एक हैक है।
अलेक्जेंडर बर्ड

12

मेरा जवाब:

<style>
 #whatever div {
  display: inline;
  margin: 0 1em 0 1em;
  width: 30%;
}
</style>

<div id="whatever">
 <div>content</div>
 <div>content</div>
 <div>content</div>
</div>

क्यों?

तकनीकी रूप से, एक स्पैन एक इनलाइन तत्व है, हालांकि इसमें चौड़ाई हो सकती है, आपको बस पहले ब्लॉक करने के लिए उनकी प्रदर्शन संपत्ति सेट करने की आवश्यकता है। हालाँकि, इस संदर्भ में, एक div शायद अधिक उपयुक्त है, जैसा कि मैं अनुमान लगा रहा हूं कि आप इन divs को सामग्री से भरना चाहते हैं।

एक चीज जो आप निश्चित रूप से नहीं करना चाहते हैं clear:bothवह डिव पर सेट है। इसे इस तरह सेट करने का मतलब होगा कि ब्राउज़र किसी भी तत्व को उनके समान लाइन पर बैठने की अनुमति नहीं देगा। परिणाम, आपके तत्व ढेर हो जाएंगे।

ध्यान दें, का उपयोग display:inline। यह ie6 मार्जिन-डबलिंग बग से संबंधित है। यदि आवश्यक हो तो आप अन्य तरीकों से इससे निपट सकते हैं, उदाहरण के लिए सशर्त स्टाइलशीट।

मैंने एक आवरण (#weverever) जोड़ा है क्योंकि मैं अनुमान लगा रहा हूं कि ये पृष्ठ पर केवल तत्व नहीं होंगे, इसलिए आपको निश्चित रूप से इन्हें अन्य पृष्ठ तत्वों से अलग करना होगा।

वैसे भी, मुझे आशा है कि यह उपयोगी है।


यह काम नहीं कर रहा था जब मैंने इसे काट दिया और इसे jsfiddle
जेमी फ्रिस्ट्रोम

1
क्षमा करें, वहां टाइपो; मुझे उन पंक्तियों में से प्रत्येक के बाद एक अर्ध-बृहदान्त्र लगाना चाहिए था, फिर यह काम करता है; मैंने उसी के अनुसार संपादन किया है। हालांकि इस प्रश्न की फिर से समीक्षा करने के बाद, मैं सुझाव दूंगा कि ओपी को अपने उदाहरण में थोड़ा और कोड जोड़ने की आवश्यकता है। जैसा कि यहां दिए गए उत्तर बताते हैं, विभिन्न प्रकार के दृष्टिकोण हैं जिनका उपयोग यहां किया जा सकता है और वास्तव में आप जो उपयोग करते हैं वह संदर्भ पर निर्भर करेगा।
सैम मुर्रे-सुटन

4

तुम कर सकते हो:

<div style="float: left;"></div>

या

<div style="display: inline;"></div>

या तो एक क्षैतिज रूप से divs टाइल का कारण होगा।


3

मैं इसे कुछ इस तरह से करूंगा क्योंकि यह आपको 3 समान आकार के कॉलम देता है, यहाँ तक कि रिक्ति और (भी) तराजू। नोट: यह परीक्षण नहीं किया गया है, इसलिए इसे पुराने ब्राउज़रों के लिए ट्विक करने की आवश्यकता हो सकती है।

<style>
html, body {
    margin: 0;
    padding: 0;
}

.content {
    float: left;
    width: 30%;
    border:none;
}

.rightcontent {
    float: right;
    width: 30%;
    border:none
}

.hspacer {
    width:5%;
    float:left;
}

.clear {
    clear:both;
}
</style>

<div class="content">content</div>
<div class="hspacer">&nbsp;</div>
<div class="content">content</div>
<div class="hspacer">&nbsp;</div>
<div class="rightcontent">content</div>
<div class="clear"></div>

2

मै इस्तेमाल करूंगा:

<style>
.all {
display: table;
}
.maincontent {
float: left;
width: 60%; 
}
.sidebox { 
float: right;
width: 30%; 
}
<div class="all">
   <div class="maincontent">
       MainContent
   </div>
   <div class="sidebox"> 
       SideboxContent
   </div>
</div>

यह पहली बार है जब मैं इस 'कोड टूल' को ओवरफ्लो से उपयोग करता हूं ... लेकिन अब तक यह काम कर रहा है ...


1

आप सीएसएस ग्रिड आधारित लेआउट को देखना चाहते हैं। इस लेआउट पद्धति में पृष्ठ संरचना को ग्रिड संरचना में संरेखित करने के लिए कुछ सीएसएस कक्षाओं को निर्दिष्ट करना शामिल है। यह वेब-आधारित की तुलना में प्रिंट-बेक्ड लेआउट से अधिक निकटता से संबंधित है, लेकिन यह एक ऐसी तकनीक है जिसका उपयोग बहुत सारी वेबसाइटों पर किया जाता है ताकि तालिकाओं का सहारा लिए बिना किसी संरचना में सामग्री को लेआउट किया जा सके।

मुंहतोड़ पत्रिका से शुरुआत के लिए यह प्रयास करें ।


0

सीएसएस फ्लोट संपत्ति को देखें। http://w3schools.com/css/pr_class_float.asp

यह div जैसे ब्लॉक तत्वों के साथ काम करता है। वैकल्पिक रूप से, आप क्या प्रदर्शित करने का प्रयास कर रहे हैं, यदि आप वास्तव में कुछ सूचनाओं की तालिका दिखाने की कोशिश कर रहे हैं, तो टेबल खराब नहीं हैं।


लेकिन यह एक मेज नहीं है। वे सिर्फ तीन चीजें हैं जिन्हें मैं एक दूसरे के बगल में दिखाना चाहता हूं।
थॉमस ओवेन्स

404 पेज नहीं मिला
अली Yousefi

0

मैं उन्हें सभी display: block;विशेषता और उपयोग करने की कोशिश करूंगा float: left;

आप तब सेट कर सकते हैं widthऔर / या heightआप की तरह। आप कुछ ऊर्ध्वाधर-संरेखण नियम भी निर्दिष्ट कर सकते हैं।


0
    <!-- CSS -->
<style rel="stylesheet" type="text/css">
.all { display: table; }
.menu { float: left; width: 30%; }
.content { margin-left: 35%; }
</style>

<!-- HTML -->
<div class="all">
<div class="menu">Menu</div>
<div class="content">Content</div>
</div>

एक और ... उपयोग करने का प्रयास करें float: left;या right;, widthअन्य मानों के लिए बदलें ... यह काम का काम करता है ... यह भी ध्यान दें कि 10% जो div द्वारा उपयोग किया जाता है, वह उन्हें धोखा देता है ... बुरा अंग्रेजी के लिए खेद है :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.