web-dev-qa-db-de.com

Machen Sie div 100% Breite des Browserfensters

Ich versuche, einen meiner Container auf 100% der Bildschirmbreite auszubilden.

Hier ist meine SASS

body, html { 
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
}

#neo_wrapper {  
    width: 960px;
    height: 1500px;
    margin: 0 auto;

    #neo_main_container1 {  /* Slide1 container */
        width: 100%;
        height: 100%;
        margin: 0 auto;
        background: #999999;
        z-index: 350;

        #neo_scroll_button {    /* Div that enables scroll */
            position: absolute;
            bottom: 35px;
            left: 0;
            right: 0;
            margin: 0 auto;
            width: 150px;
            height: 15px;
            background: #F00;
            color: #FFF;
            text-align: center;
            line-height: 15px;
            display: table; 

            a { 
                &:link {text-decoration: none; color: #FFF;}
                &:visited {text-decoration: none; color: #FFF;}
            }
       }
    }

     #neo_main_container2 {
        width: 100%;
        height: 100%;
        margin: 0 auto;
        background: #CCC;
        z-index: 300;

        #neo_img_container {
           float: left;
           width: 350px;
           height: 500px;
            margin: 0 auto;
            margin-right: 15px;
         }

        #neo_text_container {
            float: left;
            width: 50%;
            height: 500px;
            margin: 0 auto;
        }
    }
 }

Und HTML 

<body>
<div id="neo_wrapper">
    <div id="neo_main_container1">  <!-- Start container1 -->
        <div id="neo_scroll_button" onClick="scrollBelow()">
            <p>Enter</p>
        </div>
    </div>  <!-- End of container1 -->
    <div id="neo_main_container2">  <!-- Start container2 -->
        <div id="neo_img_container">
            <img src="http://fpoimagery.com/?t=px&w=350&h=250&bg=0ff&fg=000000" />
        </div>
        <div id="neo_text_container">
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
    </div>  <!-- End container2 -->
</div>

Ich möchte, dass # neo_main_container1 die gesamte Bildschirmbreite hat. Da es sich bei #neo_wrapper um ein Kind handelt, wird die Breite auf 100% gesetzt, was 960px ergibt. Ich bin mir sicher, wie man dieses Problem umgehen kann, also wäre jede Hilfe dankbar.

Aktualisiert: Hier ist meine JS-Geige: http://jsfiddle.net/VkqjH/

8
Mike K.

Es gibt neue Einheiten, die Sie verwenden können:

vw - Breite des Ansichtsfensters

vh - Viewport-Höhe

#neo_main_container1
{
   width: 100%; //fallback
   width: 100vw;
}

Hilfe / MDN

Opera Mini unterstützt dies nicht, aber Sie können es in allen anderen modernen Browsern verwenden.

Kann ich benutzen

 enter image description here

32
Luke
.myDiv {
    background-color: red;
    width: 100%;
    min-height: 100vh;
    max-height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0 auto;
}

Grundsätzlich fixieren wir die Position des Divs unabhängig vom übergeordneten Element und positionieren sie dann mit margin: 0 auto; und stellt seine Position in der oberen linken Ecke ein.

Wenn width:100% in jedem Fall funktioniert, verwenden Sie einfach das. Andernfalls können Sie vw verwenden. Dies ist relativ zu 1% der Breite des Ansichtsfensters.

Wenn Sie also die Breite abdecken möchten, verwenden Sie einfach 100vw.

Schauen Sie sich das Bild an, das ich für Sie hier zeichne:

 enter image description here

Probieren Sie den von mir erstellten Ausschnitt aus:

.full-width {
  width: 100vw;
  height: 100px;
  margin-bottom: 40px;
  background-color: red;
}

.one-vw-width {
  width: 1vw;
  height: 100px;
  background-color: red;
}
<div class="full-width"></div>
<div class="one-vw-width"></div>

0
Alireza