固定宽度div在右边,填充左边的剩余宽度div

Tho*_*mas 15 html css

我正在寻找一种方法,将2个div作为列,右边的div有一个固定的宽度,div在左边填充剩余的空间.

有谁碰巧知道这是否可以做到?

我的尝试(在block1下面呈现block2):

<style>
.block1 {
   width: auto;
   height: 200px;

   background-color: green;
}
.block2 {
   float: right;
   height: 200px;
   width: 200px;

   background-color: red;
}
</style>

<div class="block1">test1</div>
<div class="block2">test2</div>
Run Code Online (Sandbox Code Playgroud)

san*_*eep 24

你可以这样做:

HTML:

<div class="right">right</div>
<div class="left">left</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.left{
    background:red;

}
.right{
    float:right;
    width:200px;
    background:green
}
Run Code Online (Sandbox Code Playgroud)

查看这个实例http://jsfiddle.net/QHTeS/2/

  • 我从未意识到标记中的顺序有所不同,谢谢! (6认同)
  • 这种方法的问题是它需要用户更改代码的结构.这不应该被接受.它违反了将结构与表示和业务逻辑分离的整个想法. (5认同)
  • 我需要将`overflow:hidden`添加到`left`以便让它为我工作. (2认同)

Kyl*_*yle 6

Float 剩下的两个元素:

<style>
.block1 {
   width: auto;
   height: 200px;
   float: left;
   background-color: green;
}
.block2 {
   float: left;
   height: 200px;
   width: 200px;

   background-color: red;
}
</style>

<div class="block1">test1</div>
<div class="block2">test2</div>
Run Code Online (Sandbox Code Playgroud)

您应该将它们包装在容器中,以防止弄乱其余的布局.:)

http://jsfiddle.net/tcFjN/


那是错的!

display: table;在父母和display: table-cell;孩子身上使用:

<div id="wrapper">
    <div class="block1">test1</div>
    <div class="block2">test2</div>
</div>


#wrapper
{
    display: table;
    width: 100%;
}

.block1 {
       width: auto;
       height: 200px;
       display: table-cell;
       background-color: green;
}
.block2 {
       display: table-cell;
       height: 200px;
       width: 200px;
       background-color: red;
    }
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/tcFjN/1/