html标签和身体之间奇怪的白色空间

时间:2014-05-14 20:35:46

标签: javascript html css document-body

我正在试图获得一个全屏图像背景,其中心有一个可滚动的div,所以我写了这段代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Bio</title>
<link href="../css/layout-base.css" rel="stylesheet">
<script type="text/javascript" src="../jquery/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(window).ready(function(){
        var background = $('#background');
        var scrollable = $('#scrollable-container');
        var halfWhite = $('#halfWhite');
        var halfBlack = $('#halfBlack');
        /* calcolo dimensione finestra */
        var maxWidth = $(window).width();
        var maxHeight = $(window).height();

        /* settaggio dimensioni immagine sfondo */
        background.css("height",maxHeight);
        background.css("width",maxWidth);

        scrollable.css("height",maxHeight);

        /* settaggio dimensioni riempimento sfondo */
        halfWhite.css("height",maxHeight);
        halfWhite.css("width",maxWidth/2);
        halfBlack.css("height",maxHeight);
        halfBlack.css("width",maxWidth/2);
});
</script>
</head>
<body>
<div id="background">
    <div id="halfWhite"></div>
    <div id="halfBlack"></div>
    <div id="scrollable-container">
        <div class="content">
            <a href="#" class="menu" id="home" target="_self"><img src="../media/index/bio1.png"/></a>
            <a href="#" class="menu" id="events" target="_self"><img src="../media/index/events2.png"/></a>
            <a href="#" class="menu" id="gallery" target="_self"><img src="../media/index/gallery3.png"/></a>
            <a href="#" class="menu" id="disco" target="_self"><img src="../media/index/disco4.png"/></a>
        </div><!--div content -->
    </div>
</div><!-- div background -->
</body>
</html>

使用相对css:

body{
overflow:hidden;
margin:0!important;
}
#background{
background-image:url(../media/index/back.png);
background-size:contain;
background-position:center;
background-repeat:no-repeat;
}
#halfWhite{
position:relative;
background-color: white;
z-index: -10;
float: left;
}
#halfBlack{
position:relative;
background-color: black;
z-index: -10;
float: right;
}
#scrollable-container{margin-left: 15%;margin-right: 15%;background-color:rgba(0,0,0,0.00)}
.content{
margin-top:1%;
height:100%;
position: relative;
padding-left: 5%;
padding-right: 5%;
box-shadow: -10px 2px 15px #dedede,10px -2px  15px #dedede;
-moz-box-shadow:-10px 2px 15px #dedede,10px -2px  15px #dedede;
-webkit-box-shadow:-10px 2px 15px #dedede,10px -2px  15px #dedede;
background-color:rgba(255,255,255,0.8);
}
.menu{width:15%}
.menu img{width:100%}
#home{position:absolute;top:0px;left:0px;}
#events{position:absolute;top:0px;right:0px;}
#gallery{position:absolute;bottom:0px;left:0px;}
#disco{position:absolute;bottom:0px;right:0px;}

结果似乎很好,但我注意到html标签和身体之间有一个奇怪的空白区域......我怎么能避免这种行为?可能是什么原因? 不幸的是我在网络开发方面很新,所以我甚至都不知道这是否是获得这种布局的正确方法。 有没有人有一些提示?

3 个答案:

答案 0 :(得分:2)

我的评论中提到的保证金问题会缩小保证金

http://www.w3.org/TR/CSS2/box.html#collapsing-margins

您可以从.content中删除边距顶部,并将padding-top添加到容器#scrollable-container

我不确定这是不是你要做的,但我认为是

答案 1 :(得分:1)

您的问题是margin-top上的1%.content(layout-base.css的第26行)

边际有时可能会挤出父母。

答案 2 :(得分:0)

#background{
margin:0;
background-image:url(../media/index/back.png);
background-size:contain;
background-position:center;
background-repeat:no-repeat;
}

如果这不起作用,请尝试删除margin-top:1%;并将其归零.content