我已将html和正文宽度和高度设置为100%。为什么这不足以允许我的背景图像显示(#home1,#home2,#home3)?没有设置所有div将基于其高度的像素?我希望内容决定页脚和标题的高度,即没有像素高度。布局应该是:logo ...全高(减去页眉和页脚)。 #photo-group ...全高(减去页眉和页脚)。类.pic-group应该使每张照片成为#photo-group的30%。目前,除非我在类.pic-group上设置像素高度,否则不会显示图像。我想做的是什么,我错过了一些明显的东西?设置基于像素的高度将会导致“侮辱”。我尝试流畅的布局。
<?php
session_start();
include('debug-code.php');
$thisPage = "home";
$title="";
$metaDesc="";
include('head.php');?>
<style>
html {
height:100%;
font-size: 100%;
overflow-y: scroll;
}
body {
font-size:16px;
color:#434c50;
font-family: arial, serif;
background:white;
width:100%;
height:100%;
}
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
clear: both;
height:0;
}
#home-container {
position:relative;
margin:0 auto;
width:70%;
background:white;
}
#home-content {
position:relative;
}
#home-content .content {
width:100%;
}
div.logo.home {
position:relative;
float:left;
width:60%;
background:#fdf2fd;
}
div.logo.home img {
width:60%;
}
#home-footer {
position:relative;
bottom:0;
background:#d5d0d5;/*url('../images/footerBG.png')*/;
color:white;
border-top:1px solid #05577a;
}
#home-footer .content {
margin:0 auto;
width:70%;
padding:1.5rem 0;
}
#photo-group {
display:block;
width:20%;
height:100%;
float:left;
}
.pic-group {
height:30%;
display:block;
position:relative;
}
#home1 {
background: blue url('../images/home1.png') no-repeat top left;
background-size:100%;
}
#home2 {
background:yellow url('../images/home2.png') no-repeat top left;
background-size:100%;
}
#home3 {
background:red url('../images/home3.png') no-repeat top left;
background-size:100%;
}
</style>
</head>
<body>
<?php include('home-header.php')?>
<div id="home-container"><div class="content clearfix">
<div id="home-content"><div class="content clearfix">
<div class="logo home"><?php include('logo-home-image.htm');?></div>
<div id="photo-group">
<div id="home1" class="pic-group"></div><div id="home2" class="pic-group"></div><div id="home3" class="pic-group"></div>
</div>
<?php include('home-menu.php');?>
<div id='mobile-menu'></div>
</div></div><!--end content-->
<?php include("disclaimer.htm") ?>
</div></div><!--end container-->
<?php include("home-footer.htm") ?>
</body>
</html>
答案 0 :(得分:0)
您需要在div上明确设置height
,以使其填写offsetparent
的可用高度。在这种情况下身体。 Div元素是块元素。这意味着默认情况下它们会占用其offsetparent的可用宽度。默认情况下,高度设置为auto。这意味着当div中的内容被包装成一个新行时它会增加。
但是你希望你的div占据身体的所有空间。但是身体不是#home divs的偏移。
Offsetparents:
#home > #photo-group > #home-content > #home-container > body
但是在#home-container
上你没有设置高度并将位置设置为相对位置。所以这成为所有子div的base
。将它们的高度设置为相对到此div。因此,在30%
上设置0
会产生0
。明确设置300px
当然是有效的。这就是#home溢出其父级的内容。