使div为浏览器窗口的100%宽度

时间:2014-07-17 16:15:50

标签: html css sass fullscreen

我正在尝试将我的一个容器设置为屏幕宽度的100%。

这是我的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;
        }
    }
 }

和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>

我希望#neo_main_container1成为屏幕的整个宽度。显然因为它是#neo_wrapper的孩子,将宽度设置为100%将使其成为960px。我确定如何规避这个问题,所以任何帮助都会受到赞赏。

更新:这是我的JS小提琴:http://jsfiddle.net/VkqjH/

6 个答案:

答案 0 :(得分:36)

您可以使用新单位:

vw - 视口宽度

vh - 视口高度

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

Help / MDN

Opera Mini不支持此功能,但您可以在所有其他现代浏览器中使用它。

CanIUse

enter image description here

答案 1 :(得分:4)

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

基本上,我们正在修复div的位置而不管它的父级,然后使用margin定位它:0 auto;并将其位置设置在左上角。

答案 2 :(得分:0)

如果width:100%在任何情况下均有效,请使用它,否则您可以在这种情况下使用vw,相对于视口宽度的1%。

这意味着如果您想覆盖宽度,只需使用100vw

看看我在这里为你画的图片:

enter image description here

尝试我为您创建的代码段,如下所示:

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

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

答案 3 :(得分:0)

将主体的边距设置为0,这将对其进行修复。

case

答案 4 :(得分:-1)

尝试给它一个位置:绝对;

答案 5 :(得分:-1)

能够使用JavaScript找出答案

 var winHeight = 0; /* Window height */
 var winWidth = 0;  /* Window width */


 $(document).ready(function() {


setContainerDims();


function setContainerDims(){
    winHeight = parseInt($(window).height());
    winWidth = parseInt($(window).width());

    $("#neo_home_container").css({"width":winWidth,"height":winHeight});
}



$(window).resize(function(){
    setContainerDims();
})

});