两个div元素应该保持在一行中

时间:2013-09-20 09:59:54

标签: html css

我有一个带有2个div的html页面,他们应该调整大小,但总是保持一行。我怎样才能建立这个?

我有以下示例html代码:

<html>
<head>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="content">
  <div id="table">
  <table>
    <tr>
      <td>ONE</td>
      <td>TWO</td>
    </tr>
  </table>
  </div>
  <div id="sidebar">
    <p>This is a sidebar</p>
  </div>
</div>
</body>
</html>

样式表看起来像这样:

#content {
  width: 100%;
}

#table {
  width: 100%;
  background-color: red;
  display: inline-block;
}

#sidebar {
  width: 170px;
  background-color: blue;
  float: right;
  display: inline-block;
}

5 个答案:

答案 0 :(得分:1)

将您的内容css更改为

#content {
width: 100%;
display:inline-block;
}

但是这里因为你的表格宽度设置为100%主div在同一行中接受170px的方式。

在#table超过81%后,它将内容推送到下一行

答案 1 :(得分:1)

使用浮点数和calc()函数

以下是使用浮点数和calc()函数(CSS3)执行此操作的一种方法:

#content {
  width: 100%;
  border: 1px dotted gray;
  overflow: auto; /* useful for enclosing the floated region */
}
#table {
  float: left;
  width: calc(100% - 170px); /* modern but not yet widely supported */
  background-color: red;
}
#table table {
  border: 1px solid yellow;
  width: 100%; /* '100%' for full-width; 'auto' for shrink-to-fit content */
}
#sidebar {
  float: right;
  width: 170px;
  background-color: blue;
}

#table#sidebar分别向左和向右浮动。

浮动元素时,除非指定宽度值,否则它将计算为缩小到适合的值。

如果您在width: 100%上指定#table,则会强制侧边栏开始新行。

要为侧边栏留出空间,请使用calc(100% - 170px)计算表格面板的理想最大宽度。

最新的浏览器支持calc()功能,因此此解决方案可能不合适。

<强> See Demo Fiddle

答案 2 :(得分:0)

你给#content宽度为100%所以需要占用整个空间。您需要调整div的宽度并将#content浮动到左侧,以便计算为100%。

答案 3 :(得分:0)

Float:left;
两个div的

然后将它们放在一个包装中然后调整包的大小,但是你希望它看起来。

.wrap {

 width: 500px;
 height:800px;
}

所以对于你的代码,CSS:

#content {
  width: 100%;
}
#wrap {
  height: 100%;
  width: 100%;
}
#table {
  width: 60%;
  background-color: red;
  display: inline-block;
  float: left;
}
#sidebar {
 width: 170px;
 background-color: blue;
 float: right;
 display: inline-block;
 float: left;
}

HTML:

<body>
<div id="wrap">
<div id="content">
  <div id="table">
  <table>
    <tr>
      <td>ONE</td>
      <td>TWO</td>
    </tr>
  </table>
  </div>
  <div id="sidebar">
    <p>This is a sidebar</p>
  </div>
</div>
</div>
</body>

答案 4 :(得分:0)

看看这个小提琴......它有助于实现你所需要的。

这是更新后的css ..

#content {
  width: 100%;
}

#table {
    float: left;
  background-color: red;
  display: inline-block;
    width: 60%;
}

#sidebar {
    float: left;
  width: 170px;
  background-color: blue;
  float: right;
  display: inline-block;
}