html - 如何让 div 填充剩余的水平空间?

标签 html css width responsive

我有 2 个 div: 一个在页面的左侧,一个在页面的右侧。左边的那个有固定的宽度,我希望右边的那个填满剩余的空间。

#search {
  width: 160px;
  height: 25px;
  float: left;
  background-color: #ffffff;
}

#navigation {
  width: 780px;
  float: left;
  background-color: #A53030;
}
<div id="search">Text</div>
<div id="navigation">Navigation</div>

最佳答案

我在 Boushley 的回答中发现的问题是,如果右列比左列长,它只会环绕左列并继续填充整个空间。这不是我想要的行为。在搜索了很多“解决方案”后,我找到了一个关于创建三栏页面的教程(现在链接已失效)。

作者提供了三种不同的方式,一种是固定宽度,一种是三列可变,一种是外列固定,中间宽度可变。比我发现的其他示例更优雅、更有效。大大提高了我对 CSS 布局的理解。

基本上,在上面的简单情况下,将第一列向左浮动并给它一个固定的宽度。然后给右边的列一个比第一列宽一点的左边距。而已。完毕。 Ala Boushley 的代码:

这是 Stack SnippetsjsFiddle 中的演示

#left {
  float: left;
  width: 180px;
}

#right {
  margin-left: 180px;
}

/* just to highlight divs for example*/
#left { background-color: pink; }
#right { background-color: lightgreen;}
<div id="left">  left  </div>
<div id="right"> right </div>

在 Boushley 的示例中,左列将另一列保留在右侧。一旦左列结束,右列就开始再次填充整个空间。在这里,右列只是进一步对齐页面,左列占据了它的大页边距。无需流交互。

关于html - 如何让 div 填充剩余的水平空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1032914/

相关文章:

javascript - Dialogflow html/js 卡 json 值 v1

javascript - 如何修改动态生成的表格中复选框的标签?

css - codeigniter Controller 和 controller/之间有什么区别?

javascript - 如何重写这个js脚本以将文本字段的宽度设置为50%?

css - 如何使下拉菜单宽度与选项卡大小相同?

javascript - Chrome 漏洞 : Some CSS rules ignored

javascript - JavaScript 算术和 DOM 中的 NaN 值出现问题

html - 如何打破 CSS 中的报纸样式 3 列布局?

jquery - 根据带菜单的部分滑动页面

iOS 应用程序似乎认为其宽度是实际宽度的一半