बूटस्ट्रैप तत्व 100% चौड़ाई


96

मैं बारी-बारी से 100% रंगीन ब्लॉक बनाना चाहता हूं। एक "आदर्श" स्थिति को एक लगाव के साथ-साथ वर्तमान स्थिति के रूप में चित्रित किया जाता है।

वांछित सेटअप:

http://i.imgur.com/aiEMJ.jpg

वर्तमान में:

http://i.imgur.com/3Sl27.jpg

मेरा पहला विचार एक दिव्यांग वर्ग बनाना था, इसे एक पृष्ठभूमि रंग देना था, और इसे 100% चौड़ाई देना था।

.block {
    width: 100%;
    background: #fff;
}

हालाँकि, आप देख सकते हैं कि यह स्पष्ट रूप से काम नहीं करता है। यह एक कंटेनर क्षेत्र तक ही सीमित है। मैंने कंटेनर को बंद करने की कोशिश की और वह भी काम नहीं किया।


क्या आप उस कोड को शामिल कर सकते हैं जिसके साथ आप काम कर रहे हैं? इसके बिना, मैं कह सकता हूं कि आपको यह सुनिश्चित करना होगा कि div के लिए टैग्स की चौड़ाई 100% से अधिक न हो।
माइकल पीटरसन

हे माइकल, प्रतिक्रिया के लिए धन्यवाद। यहां मैं जिस कोड के साथ काम कर रहा हूं उसका अनुभाग है: <div class="container"> <div class="row"> <div class="span12"><img src="img/logo.png" width="960px"></center></div> <div class="block">content</div>
user1589214

जवाबों:


78

containerवर्ग जानबूझकर 100% चौड़ाई नहीं है। यह व्यूपोर्ट की चौड़ाई के आधार पर अलग-अलग निश्चित चौड़ाई है।

यदि आप स्क्रीन की पूरी चौड़ाई के साथ काम करना चाहते हैं, तो उपयोग करें .container-fluid:

बूटस्ट्रैप 3:

<body>
  <div class="container-fluid">
    <div class="row">
      <div class="col-lg-6"></div>
      <div class="col-lg-6"></div>
    </div>
    <div class="row">
      <div class="col-lg-8"></div>
      <div class="col-lg-4"></div>
    </div>
    <div class="row">
      <div class="col-lg-12"></div>
    </div>
  </div>
</body>

बूटस्ट्रैप 2:

<body>
  <div class="row">
    <div class="span6"></div>
    <div class="span6"></div>
  </div>
  <div class="row">
    <div class="span8"></div>
    <div class="span4"></div>
  </div>
  <div class="row">
    <div class="span12"></div>
  </div>
</body>

1
.row को एक .container या इस स्थिति में .container-fluid की आवश्यकता होती है।
netAction

1
यदि आप बूटस्ट्रैप स्टाइलशीट के पुराने संस्करण का उपयोग कर रहे हैं, तो container-fluidएक क्षैतिज स्क्रॉलबार होगा। इसे ठीक करने के लिए इसे अपनी स्टाइलशीट में शामिल करें.container-fluid{ padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
चार्ली

29

इस प्रकार आप बूटस्ट्रैप 3 के साथ अपना इच्छित सेटअप प्राप्त कर सकते हैं :

<div class="container-fluid">
    <div class="row"> <!-- Give this div your desired background color -->
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    ... your content here ...
                </div>
            </div>
        </div>
    </div>
</div>

container-fluidहिस्सा सुनिश्चित करें कि आप पूरी चौड़ाई से अधिक पृष्ठभूमि को बदल सकते हैं बनाता है। containerहिस्सा सुनिश्चित करें कि आपकी सामग्री अभी भी एक निश्चित चौड़ाई में लपेटा जाता है बनाता है।

यह दृष्टिकोण काम करता है, लेकिन व्यक्तिगत रूप से मुझे सभी घोंसले पसंद नहीं हैं। हालाँकि, मुझे अब तक कोई बेहतर समाधान नहीं मिला है।


3
वास्तव में ऐसा लगता है कि "न तो कंटेनर घोंसला है " getbootstrap.com/css/#overview-container , इसलिए यहां कुछ मुद्दों की अपेक्षा करें (लेकिन मैं अभी भी आपके समाधान का उपयोग करूंगा जो मुझे लगता है)।
थिबुत बर्रे

यह ध्यान देने योग्य है कि कंटेनर-द्रव वर्ग बूटस्ट्रैप 3.0 में उपलब्ध नहीं है, लेकिन 3.1 पर उपलब्ध है और अधिक है
देव

29

शीघ्र जवाब

  1. कई नॉटेड .container एस का उपयोग करें
  2. उन लोगों को लपेटें जिन्हें .containerआप पूर्ण-चौड़ाई की पृष्ठभूमि में रखना चाहते हैंdiv
  3. रैपिंग डिव में सीएसएस बैकग्राउंड जोड़ें

Fiddles: Simple: https://jsfiddle.net/vLhc35k4/ , कंटेनर बॉर्डर: https://jsfiddle.net/vLhc35k4/1/
HTML:

<div class="container">
  <h2>Section 1</h2>
</div>
<div class="specialBackground">
  <div class="container">
    <h2>Section 2</h2>
  </div>
</div>

सीएसएस: .specialBackground{ background-color: gold; /*replace with own background settings*/ }

आगे की जानकारी

इसका उपयोग न करें

बहुत से लोग ( गलत तरीके से ) सुझाव देंगे , कि आपको नेस्टेड कंटेनरों का उपयोग करना चाहिए।
ठीक है, तुम नहीं करना चाहिए ।
वे नेस्टेड होने के लिए मानसिक नहीं हैं। ( डॉक्स में " कंटेनर " अनुभाग देखें )

यह काम किस प्रकार करता है

divएक ब्लॉक तत्व है, जो डिफ़ॉल्ट रूप से किसी डॉक्यूमेंट बॉडी की पूरी चौड़ाई तक होता है - इसमें फुल-चौड़ाई फीचर होता है। इसकी सामग्री की ऊंचाई भी है (यदि आप अन्यथा निर्दिष्ट नहीं करते हैं)।

बूटस्ट्रैप कंटेनरों को एक शरीर के प्रत्यक्ष बच्चे होने की आवश्यकता नहीं है, वे बस कुछ पैडिंग वाले कंटेनर हैं और संभवतः कुछ स्क्रीन-चौड़ाई-चर निश्चित चौड़ाई हैं।

यदि एक बेसिक ग्रिड .containerमें कुछ निश्चित चौड़ाई है तो यह क्षैतिज रूप से ऑटो-केंद्रित भी है।
इसलिए इसमें कोई अंतर नहीं है कि क्या आप इसे एक:

  1. एक शरीर का सीधा बच्चा
  2. एक मूल div का प्रत्यक्ष बच्चा जो एक शरीर का प्रत्यक्ष बच्चा है।

"बेसिक" से divमेरा मतलब है divकि सीएसएस में अपनी सीमा, पैडिंग, आयाम, स्थिति या सामग्री का आकार बदलना नहीं है। display: block;सीएसएस और संभवतः पृष्ठभूमि के साथ वास्तव में सिर्फ एक HTML तत्व ।
लेकिन निश्चित रूप से वर्टिकल जैसे सीएसएस (ऊंचाई, पैडिंग-टॉप, ...) को बूटस्ट्रैप ग्रिड को तोड़ना नहीं चाहिए :-)

बूटस्ट्रैप स्वयं उसी दृष्टिकोण का उपयोग कर रहा है

... ऑल ओवर इट्स इट्स ओन वेबसाइट एंड इट्स "जेमबॉट्रोन" उदाहरण:
http://getbootstrap.com/examples/jjotot/


1
यह उत्तर बहुत ही गहन और अडिग है कि अन्य कंटेनरों के अंदर घोंसले के शिकार करना एक 'बहुत बुरा विचार' है (जैसे 'घोस्टबस्टर्स में धाराओं को पार करना') और वह बूटस्ट्रैप वेबसाइट के संदर्भ की ओर इशारा करता है जो इस बात का समर्थन करता है। एक साधारण div के अंदर एक कंटेनर को शामिल करना सुझाव और तथ्य है कि Boostrap ने अपने Jumbotron उदाहरण पर इस तकनीक का उपयोग किया है, मुझे बताता है कि jave.web आज का विजेता है!
वोक्समैन

उस जंबोट्रोन उदाहरण ने मेरे सभी सवालों को हटा दिया।
अलेक्जेंडर किम

कभी-कभी कंटेनर को बंद करना और एक नया पूर्ण-कंटेनर खोलना संभव नहीं है। वर्कअराउंड। निम्नलिखित उत्तर में बेहतर है!
RubbelDeCatc

21

Vw का उपयोग करके एक वर्कअराउंड है। उपयोगी है जब आप एक नया द्रव कंटेनर नहीं बना सकते हैं। यह, एक क्लासिक 'कंटेनर' डिव के अंदर पूर्ण आकार का होगा।

.row-full{
 width: 100vw;
 position: relative;
 margin-left: -50vw;
 left: 50%;
}

इसके बाद साइडबार की समस्या है (@Typhlosaurus का धन्यवाद), इस js फ़ंक्शन के साथ हल किया गया, इसे दस्तावेज़ लोड पर कॉल किया गया और आकार बदल दिया गया:

function full_row_resize(){
    var body_width = $('body').width();
    $('.row-full').css('width', (body_width));
    $('.row-full').css('margin-left', ('-'+(body_width/2)+'px'));
    return false;
}

3
यह एक आदर्श उत्तर के बहुत करीब है जिसे समग्र पृष्ठ लेआउट में बदलाव की आवश्यकता नहीं है, और कभी-कभी पर्याप्त होगा, हालांकि स्क्रॉलबार के साथ सूक्ष्म मुद्दे हैं। .Row-full एक कंटेनर-तरल पदार्थ के विपरीत, स्क्रॉल-पट्टियों को अनदेखा करते हुए पूरी विंडो को भर देगा, जो स्क्रॉलबार के अपारदर्शी के आधार पर स्क्रॉलबार के साथ या उसके बिना पूरी विंडो को भर देगा।
टाइफोलोसॉरस

वाह। जेएस ने चाल चली, मैं एक समाधान पर घंटों खोज रहा हूं। मेरा मुद्दा यह है कि सामग्री एक सेमी के भीतर दर्ज की गई है और इसलिए बाहरी HTML को बदल नहीं सकता है। वास्तव में जानना चाहते हैं कि क्या कोई समाधान बिना js के है।
drooh

18

बूटस्ट्रैप 4 में, आप 'w-100' वर्ग (w चौड़ाई के रूप में, और 100 100% के रूप में) का उपयोग कर सकते हैं

आप यहाँ प्रलेखन पा सकते हैं: https://getbootstrap.com/docs/4.0/utilities/sizing/


सबसे अच्छा उत्तर यदि आप बूटस्ट्रैप 4 का उपयोग कर रहे हैं
अलेक्जेंडर जी

6

यदि आप HTML लेआउट नहीं बदल सकते हैं:

.full-width {
    width: 100vw;
    margin-left: -50vw;
    left: 50%;
}
<div class="container">
  <div class="row">
    <div class="col-xs-12">a</div>
    <div class="col-xs-12">b</div>
    <div class="col-xs-12 full-width">c</div>
    <div class="col-xs-12">d</div>
  </div>
</div>

डेमो: http://www.bootply.com/tVkNyWJxA6


2

के बजाय

style="width:100%"

प्रयोग करके देखें

class="col-xs-12"

यह आपको 1 वर्ण बचाएगा :)


यह जवाब नहीं है कि ओपी क्या पूछ रहा था। यह एक स्तंभ बना देगा जो बाहरी .containerdiv की पूरी चौड़ाई है , लेकिन यह ब्राउज़र में पृष्ठ की पूरी चौड़ाई के समान नहीं है, जो कि प्रश्न पूछ रहा है।
हार्टले ब्रॉडी

मैं नहीं देख सकता कि ओपी ने "ब्राउज़र में पेज की पूरी चौड़ाई" का अनुरोध किया था। आप इसे कैसे समझते हैं?
येवगेनी अफानासेव

2

कभी-कभी सामग्री कंटेनर को बंद करना संभव नहीं होता है। हम जिस समाधान का उपयोग कर रहे हैं वह थोड़ा अलग है लेकिन फ़ायरफ़ॉक्स स्क्रॉलबार के आकार के कारण एक अतिप्रवाह को रोकना है!

.full-width {
 margin-top: 15px;
 margin-bottom: 15px;
 position: relative;
 width: calc(100vw - 10px);
 margin-left: calc(-50vw + 5px);
 left: 50%;
}

यहाँ एक उदाहरण है: https://jsfiddle.net/RubbelDeKatz/wvt9253q


बूटस्ट्रैप 4 के साथ, यह अब तक का सबसे अच्छा जवाब है। चीयर्स!
मेट्रो स्मर्फ

1

क्षमा करें, आपके सीएसएस के लिए भी पूछना चाहिए था। जैसा कि, मूल रूप से आपको जो देखने की जरूरत है, वह आपके कंटेनर को स्टाइल .container { width: 100%; }को आपके सीएसएस में दे रहा है और फिर संलग्न div यह तब तक विरासत में मिलेगा जब तक आप उन्हें अपनी खुद की चौड़ाई नहीं देते। आपको कुछ क्लोजिंग टैग भी याद आ रहे थे, और </center>एक <center>बिना बंद हुए यह कभी भी खुला नहीं रहा, कम से कम कोड के इस भाग में। मुझे यकीन नहीं था कि अगर आप उसी डीवा में छवि चाहते हैं जिसमें आपकी सामग्री या अलग है, तो मैंने दो उदाहरण बनाए। मैंने img की चौड़ाई केवल 100px में बदल दी क्योंकि jsfiddle एक छोटा सा देखने का क्षेत्र प्रदान करता है। मुझे पता है अगर यह नहीं है जो आप के लिए देख रहे हैं।

सामग्री और छवि अलग: http://jsfiddle.net/QvqKS/2/

एक ही div में सामग्री और छवि (img बाईं ओर तैरती है): http://jsfiddle.net/QvqKS/3/


0

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

मेरी स्थिति में, मैं चाहता था कि सभी सामग्री (सभी पृष्ठों की) एक कंटेनर के अंदर प्रदान की जाए, इसलिए यह मेरे _Loutout.cshtml से कोड का टुकड़ा था:

<div id="body">

    @RenderSection("featured", required: false)

    <section class="content-wrapper main-content clear-fix">
        <div class="container">
            @RenderBody()
        </div>
    </section>
</div>

मेरे होम इंडेक्स पेज में, मेरे पास एक बैकग्राउंड हेडर इमेज थी, जिसे मैं पूरी स्क्रीन की चौड़ाई में भरना चाहता हूं , इसलिए इसका समाधान इंडेक्स.शर्टलएम को इस तरह बनाना था:

@section featured {
<!-- This content will be rendered outside the "container div" -->
<div class="intro-header">
    <div class="container">SOME CONTENT WITH A NICE BACKGROUND</div>
</div>
}

<!-- The content below will be rendered INSIDE the "container div" -->
<div class="content-section-b">
    <div class="container">
        <div class="row">
          MORE CONTENT
        </div>
    </div>
</div>

मुझे लगता है कि यह वर्कअराउंड बनाने की कोशिश करने से बेहतर है, क्योंकि अनुभाग लेआउट में कुछ सामग्री को गतिशील रूप से प्रतिस्थापित करने की अनुमति (या मजबूर) के उद्देश्य से किए गए हैं।


0

हालांकि लोगों ने उल्लेख किया है कि आपको इस मामले में .container-fluid का उपयोग करने की आवश्यकता होगी लेकिन आपको बूटस्ट्रैप से पेडिंग को भी हटाना होगा।


0

निम्नलिखित उत्तर किसी भी उपाय से बिल्कुल इष्टतम नहीं है, लेकिन मुझे कुछ ऐसा चाहिए जो कंटेनर के भीतर अपनी स्थिति को बनाए रखता है जबकि यह आंतरिक रूप से पूरी तरह से फैला हुआ है।

https://jsfiddle.net/fah5axm5/

$(function() {
    $(window).on('load resize', ppaFullWidth);

    function ppaFullWidth() {
        var $elements = $('[data-ppa-full-width="true"]');
        $.each( $elements, function( key, item ) {
            var $el = $(this);
            var $container = $el.closest('.container');
            var margin = parseInt($container.css('margin-left'), 10);
            var padding = parseInt($container.css('padding-left'), 10)
            var offset = margin + padding;

            $el.css({
                position: "relative",
                left: -offset,
                "box-sizing": "border-box",
                width: $(window).width(),
                "padding-left": offset + "px",
                "padding-right": offset + "px"
            });
        });
    }
});

0

मैं नीचे के रूप में दो अलग 'कंटेनर' div का उपयोग करेगा:

<div class="container">
   /* normal*/
</div>
<div class="container-fluid">
   /*full width container*/
</div>

यह ध्यान में रखें कि कंटेनर-द्रव आपके ब्रेकप्वाइंट का पालन नहीं करता है और यह पूर्ण चौड़ाई वाला कंटेनर है।

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