我的评论类似于我在下面嘲笑的内容。 .avatar
& .actions
具有静态宽度。 .comment
没有。我应该如何构建我的HTML& CSS以便.text
占用所有可用空间,.comment
会改变它的宽度?
答案 0 :(得分:6)
psuedo(未经测试)代码
<div class="comment">
<div class="avatar"></div>
<div class="actions"></div>
<div class="text"></div>
</div>
CSS:
.avatar {float: left;}
.actions {float: right;}
.comment, .text {overflow: hidden;}
.avatar {
float: left;
margin-right: 10px;
width: 100px;
height: 100px;
background: #fff;
}
.actions {
float: right;
margin-left: 10px;
width: 30px;
height: 130px;
background: #fff;
}
.comment, .text {
overflow: hidden;
}
.comment {
background: #eee;
width: 600px;
padding: 10px;
}
.text {
background: #fff;
}
HTML:
<div class="comment">
<div class="avatar">..</div>
<div class="actions">..</div>
<div class="text">Your comment goes here<br>more text<br>more text</div>
</div>
答案 1 :(得分:1)
overflow:hidden
来确保文本不会低于任何浮动元素。这样做的优点是不需要将两个浮点的宽度硬编码为边距。将此方法添加到我的工具箱中。
上面的小提琴告诉你我将如何做到这一点。向左浮动.avatar
,向右浮动.actions
。将.text
左右边距设为等于.avatar
和.actions
的宽度(这样可以防止.text
内的文字位于其中任何一个下方)。所有内容的顺序都很重要,因此{1}}不会出现在IE7的新行中。
答案 2 :(得分:0)
或者您可以使用Flex Box(纯CSS)并编写更少的代码。