Css 合并DIV,以便内容正确地填充另一个DIV
我有两个DIV,它们叠在一起。我希望Css 合并DIV,以便内容正确地填充另一个DIV,css,html,Css,Html,我有两个DIV,它们叠在一起。我希望容器DIV中的内容填充box-2DIV的底部,否则我只能通过使用来扩展box-2DIV的底部长度,当然,这不起作用,因为返回的结果长度不同。下面,带有较浅边框的DIV(DIVbox-2)不填充DIV容器的内容。应如何处理容器以确保其填满下方的框-2?是否应将容器CSS与box-2合并 下面是一个基于的示例,尽管它没有填充框-2div 下面是相应的HTML代码,很抱歉没有缩进 <div class="box-2"> <div class="
容器
DIV中的内容填充box-2
DIV的底部,否则我只能通过使用
来扩展box-2
DIV的底部长度,当然,这不起作用,因为返回的结果长度不同。下面,带有较浅边框的DIV(DIVbox-2
)不填充DIV容器的内容。应如何处理容器以确保其填满下方的框-2
?是否应将容器
CSS与box-2
合并
下面是一个基于的示例,尽管它没有填充框-2
div
下面是相应的HTML代码,很抱歉没有缩进
<div class="box-2">
<div class="border-top">
<div class="border-bot">
<div class="border-left">
<div class="border-right">
<div class="corner-top-left">
<div class="corner-top-right">
<div class="corner-bot-left">
<div class="corner-bot-right">
<div class="box-indent1">
<div id="boxtwo-header">
<div align="center">
<?php
echo "$myrow3[2]";
?>
</div>
</div>
<br><br><br>
<?php
echo '<div class="container">';
$q = mysql_query("SELECT * FROM name WHERE Field4 = '$cat'",$db);
while ($res = mysql_fetch_array($q)){
echo '<div class="item"><p><a href="page.php?page=' . $res['Field2'] . '&' . $res['Field6'] . '">' . $res['Field1'] . '</a></p></div>';
}
echo '</div>';
?>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="clear"></div>
容器
CSS,为MySQL查询的输出创建两列布局:
.container {
width: 600px;
float: left;
border-width: 2px;
border-spacing: ;
border-style: outset;
border-collapse: collapse;
}
.container .item {
width: 300px;
float: left;
height: 30px;
padding-top: 2px;
padding-bottom: 2px;
}
.container .item a{
font-family: Arial, Helvetica, sans-serif;
font-size: 10.5pt;
font-style: normal;
font-weight: normal;
text-transform: capitalize;
color: #000000;
text-decoration: none;
}
.container .item a:hover {
color: #FF0000;
实际标记的JSFIDLE将有助于调试
看起来.container
div正在浮动,我不明白为什么需要这样做,如果删除浮动,内容应该将.box-2
推到正确的高度
如果您确实需要浮动.container
,您可以在.box-2
上设置溢出:隐藏,这样可以清除所有浮动,从而使长方体具有正确的高度。更简单的方法
我要解决的问题是如何让两列布局正常工作
请参见演示小提琴:
考虑以下HTML:
<div class="container">
<div class="item">
<p><a href="#">Your label...1</a></p>
</div>
<div class="item">
<p><a href="#">Your label...2</a></p>
</div>
...
<div class="item">
<p><a href="#">Your label...7</a></p>
</div>
</div>
这是如何工作的
您有一个固定宽度为600px的父容器(div.container
),其中包含宽度为300px的子元素div.item
。每个.item
都包含一个带有
的
您希望每个.item
形成两行,从左到右,从上到下
您的想法是正确的,将float:left
应用于div.item
。棘手的一点是处理未设置.container
高度和折叠边距的浮动元素
首先:将溢出:auto
设置为.container
,这样您的边框将包含所有浮动元素。(从技术上讲,这会生成“块格式上下文”。)
其次,对于.item
,设置高度:auto
,无需在此处进行修复。如果这样做,则需要确保高度足以容纳标签的高度以及子元素上的任何边距
另外,在.item
上设置overflow:auto
,以确保您不会因为折叠边距而遇到麻烦
最后,在.item p
上加一个边距,设置内部段落/链接的样式
最初,.item
上的30px高度不够高,无法容纳
元素上的文本和默认边距,这将导致边距在浮动之间相互作用,并破坏两列布局,但这并不明显,因为在.container
上没有溢出:auto
。这听起来可能不太清楚,但处理一些经验很容易。看起来您正试图为MySQL查询生成的.item
元素列表创建一个两列布局。您的项目从左到右列出,然后它们包装成多行。您还试图创建一个圆角边框。您是否考虑过使用CSS3中的边界半径
?没错,容器
DIV确实创建了一个两列布局。我将把这一点补充到问题中。可以随意提供CSS3代码建议,但首要任务是以某种方式将容器
DIV数据放入box-2
中attack@MarkSchultheiss,我没有编写MySQL查询,但是如果您愿意,可以随时提供关于减少漏洞的反馈。感谢您对所提供代码的详细解释!我已经用你提供的代码的屏幕截图更新了这个问题,但是我得到了类似的结果。诀窍是我试图将容器
div中的内容放入box-2
div中。目前它们有点重叠。我用.box-2
更新了fiddle,演示了如何添加标题/标题,并给出了一些注释来指导您如何调整间距等等。你应该走得很好!如果<代码>浮动:左代码>已从容器中删除
,但它仍不会填充框-2
div。
<div class="container">
<div class="item">
<p><a href="#">Your label...1</a></p>
</div>
<div class="item">
<p><a href="#">Your label...2</a></p>
</div>
...
<div class="item">
<p><a href="#">Your label...7</a></p>
</div>
</div>
.container {
overflow: auto; /* Important*/
width: 600px;
border-width: 2px;
border-style: outset;
border-collapse: collapse;
background-color: white;
}
.container .item {
overflow: auto; /* Important */
width: 300px;
float: left;
height: auto; /* Let the .item p determine the box height ... */
padding-top: 2px;
padding-bottom: 2px;
outline: 1px dotted blue; /* Optional for demonstration... */
}
.container .item p {
outline: 1px dashed blue; /* Optional for demonstration... */
margin: 1.00em 0.50em; /* Gives you some control on the spacing...*/
}