php - 两个 div 内联,动态尺寸

标签 php html css

我想要一些看起来像典型的论坛帖子的东西,其中一些用户信息位于帖子的左侧,然后是帖子本身。我使用了两个包裹在另一个 div 周围的 div,然后在 css 上使用了 float。我的问题是另一个 div 在 float 时也想留在左边而不是“紧挨着”另一个 div。我试过了 display:inline;在 div 上,并将其改为 span。我拥有的最接近的东西只是另一个 div 的顶部在正确的位置(当我不 float 这个 div 时,只有第一个)。想想典型的 IPB 帖子布局。如果这没有意义,这是我的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<div id = "contentarea">
    <div class = "post">
        <div class = "head">
            <p class = "name">asrockw7</p>
        </div>
        <div class = "body">
            <p class = "title">On the Origin of Species</p>
            <p class = "content">Integer hendrerit lectus sit amet turpis facilisis quis lacinia nulla tempus. Aliquam vitae ante eu sem vestibulum scelerisque. Cras dui neque, auctor eget rhoncus non, pretium a justo. </p>
        </div>
        <div class = "clear">clear:both;</div>
        <div class = "allreplies">
            <div class = "reply">
                <p class = "name">Wafer</p>
                <p class = "content">Vestibulum nec turpis eu mi imperdiet porttitor. Fusce eget lorem libero, a imperdiet sem. Integer eleifend tincidunt condimentum. Nam id arcu nec lectus rhoncus sagittis.</p>
            </div>
            <div class = "reply">
                <p class = "name">Arondight</p>
                <p class = "content">Suspendisse non eros orci, a porttitor lacus. Donec vulputate viverra neque, quis sagittis eros suscipit vel.</p>
            </div>
        </div>
        <div class = "clear">clear:both;</div>
    </div>
</div>
</html>

<style type = "text/css">
.clear {
background:white;
clear:both;
}
#contentarea {
margin-top:50px;
margin-left:10px;
min-width:700px;
}
p{
font-family:"Lucida Console";
}
.post {
opacity:0.9;
background:blue;
padding:5px 10px 5px 10px;
}
.post .head {
background:red;
float:left;
}
.post .body {
background:green;
}

.post .allreplies {
background:yellow;
}
</style>

颜色只是为了能够区分每个部分。我认为这是因为 body div 认为它不适合放在 head 旁边div,所以它下降了。我本可以指定一个明确的宽度和高度并制作 body div 知道它适合,但对于拥有大分辨率显示器的人来说会很糟糕。在这一点上,我只是想使用 <table> .

这些都是PHP生成的,只是想先把布局弄好。

长话短说: 基本上我想要 head div 和 body div 彼此相邻而不是 body div 脱落,因为它认为不合适。

最佳答案

您可以将 x% 宽度添加到 .head 并将 (100-x)% 宽度添加到 .body。此外,您可以像以前一样将 float:left 添加到 .body 中。 See fiddle.

您现在的方式是,.head 元素占用左上角的空间,将内容插入 .body(未 float )向右。

当你不指定 float div的宽度时,.body div的宽度是div内部内容的宽度中的最小值>父级的宽度。在这种情况下,内容的“宽度”大于父元素的宽度,因此 .body div 被推到它自己的水平线上。如果你在 .head.body 上都有 float:left,如果 中没有那么多文本,它可以正常工作>.内容.

关于php - 两个 div 内联,动态尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920809/

相关文章:

php - MediaWiki:PHP 警告:mysqli::real_escape_string() 期望参数 1 为字符串,给定对象

javascript - 使用 javascript 从图像数组更改 img 标签 src。骰子游戏

javascript - 如果值为空则隐藏 div (javascript)

php - 断句的 css 属性

html - 可 float 元素转换为 td 元素

html - 在多个 HTML 页面中重复使用页脚

javascript - 权限更改后,我的 ASP.NET 应用程序似乎没有使用该应用程序的样式表

php - 具有简单且可配置的产品关系的 Google Merchant Product Feed

php - 如果表已经存在,是否可以选择在 MySQL 中添加列和/或创建表?

php - WooCommerce 产品类别自定义字段 - 设置时间购买限制