浏览器仅在我设置精确高度时显示div。但我想根据它的内容创建可调整大小的div。尝试高度:自动和高度:100%。它没有帮助。
我的div看起来像那样。它是侧边栏和内容的背景div。
.wrapper
{
width: 80%;
height:200px;
max-width: 1260px;
min-width: 780px;
margin: 0 auto;
background-image:url(core/design/img/transfff.png);
-moz-border-radius: 15px 15px 0px 0px;
border-radius: 15px 15px 0px 0px;
}
更新 我的HTML看起来像那样
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style type="text/css">
body {
font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
background-image: url(core/design/img/bg.png);
background-position:top left;
background-size:100%;
background-color:#fff;
background-repeat:no-repeat;
margin: 0;
padding: 0;
color: #000;
}
ul, ol, dl {
padding: 0;
margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
margin-top: 0;
padding-right: 15px;
padding-left: 15px;
a img {
border: none;
}
a:link {
color:#414958;
text-decoration: underline;
}
a:visited {
color: #4E5869;
text-decoration: underline;
}
a:hover, a:active, a:focus {
text-decoration: none;
}
.container {
width: 80%;
max-width: 1260px;
min-width: 780px;
margin: 0 auto;
}
.wrapper
{
width: 80%;
height:200px;
max-width: 1260px;
min-width: 780px;
margin: 0 auto;
background-image:url(core/design/img/transfff.png);
-moz-border-radius: 15px 15px 0px 0px;
border-radius: 15px 15px 0px 0px;
overflow: visible
}
.header {
padding:20px;
}
.sidebar1 {
float: left;
width: 20%;
padding-bottom: 10px;
}
.content {
padding: 10px 0;
width: 60%;
float: left;
}
.sidebar2 {
float: left;
width: 20%;
padding: 10px 0;
}
.content ul, .content ol {
padding: 0 15px 15px 40px;
}
ul.nav {
list-style: none;
border-top: 1px solid #666;
margin-bottom: 15px;
}
ul.nav li {
border-bottom: 1px solid #666;
}
ul.nav a, ul.nav a:visited{
padding: 5px 5px 5px 15px;
display: block;
text-decoration: none;
color: #000;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus {
background: #6F7D94;
color: #FFF;
}
/* ~~The footer ~~ */
.footer {
padding: 10px 0;
position: relative;
clear: both;
}
.fltrt {
float: right;
margin-left: 8px;
}
.fltlft {
float: left;
margin-right: 8px;
}
.clearfloat { /
clear:both;
height:0;
font-size: 1px;
line-height: 0px;
}
-->
</style><!--[if lte IE 7]>
<style>
.content { margin-right: -1px; } /* this 1px negative margin can be placed on any of the columns in this layout with the same corrective effect. */
ul.nav a { zoom: 1; } /* the zoom property gives IE the hasLayout trigger it needs to correct extra whiltespace between the links */
</style>
<![endif]--></head>
<body>
<div class="container">
<div class="header"><a href="#"><img src="core/design/img/logo.png" alt="Insert Logo Here" name="Insert_logo" width="438px" height="95" id="Insert_logo" style=" display:block; margin:0 auto;" /></a>
<!-- end .header --></div>
<div class="wrapper">
<div class="sidebar1">
</div>
<div class="content">
</div>
<div class="sidebar2">
</div>
</div>
<div class="footer">
</div>
</div>
</body>
</html>
答案 0 :(得分:72)
div
自然会根据其内容调整大小。
如果您在div上没有设置高度,它将展开以包含其内容。
此规则的一个例外是div包含浮动元素。如果是这种情况,你需要做一些额外的工作,以确保包含div(包装器)清除浮动。
以下是一些方法:
#wrapper{
overflow:hidden;
}
或者
#wrapper:after
{
content:".";
display:block;
clear:both;
visibility:hidden;
}
答案 1 :(得分:4)
确保div中的内容以clear结尾:两种风格
答案 2 :(得分:3)
以下是问题的最新解决方案:
在您的CSS文件中,编写以下名为 .clearfix 的类以及伪选择器:after
.clearfix:after {
content: "";
display: table;
clear: both;
}
然后,在您的HTML中,将 .clearfix 类添加到您的父Div。例如:
<div class="clearfix">
<div></div>
<div></div>
</div>
它应该始终有效。您可以将类名称称为 .group 而不是 .clearfix ,因为它会使代码更具语义。 请注意,在双引号&#34;&#34;之间不需要在 Content 的值中添加点或甚至空格。
答案 3 :(得分:2)
根据this,您需要为包含div的元素指定高度,以使100%高度起作用。这对你有用吗?
答案 4 :(得分:2)
如Jamie Dixon先前所述,浮动的<div>
被取出正常流量。仍在正常流程内的所有内容都将完全忽略它,并且不为其腾出空间。
尝试在每个border:solid 1px orange;
元素周围添加不同颜色的边框<div>
,以查看它们正在执行的操作。您可以从删除浮动并在div中放入一些虚拟文本开始。然后一次设置一个样式以获得所需的布局。