内联块元素是否可以自动填充可用宽度?

Bor*_*ris 12 html css layout page-layout

我有一个<div id="content">包含<div id="sub-navigation><div id="main container">,它们是内联块.我希望能够main container填充剩余的可用页面宽度.那可能吗?

Palge布局

我需要columns-strip根据column元素的数量和宽度进行扩展或缩小.如果宽度columns-strip超过宽度,main container则应出现水平滚动条.

CSS:

* {
  margin: 0px;
  padding: 0px;
  font-size: 10pt;
  white-space: normal; 
}

#wrapper {
  margin: 0px 20px; 
  background-color: red;
}

#header {
  margin: 25px 10px 10px 10px;
  height: 50px; 
  background-color: purple;
  color: white;
}

#content {
  margin: 10px; 
  padding: 10px; 
  font-size: 0pt; 
  white-space: nowrap; 
  overflow: hidden; 
  background-color: white;
}

#sub-navigation {
  width: 200px; 
  height: 150px; 
  display: inline-block; 
  vertical-align: top; 
  background-color: forestgreen; 
  color: white;
}

#main-container {
  padding: 10px; 
  display: inline-block; 
  overflow: auto; 
  background-color: yellow;
}

#columns-strip {
  padding: 10px; 
  font-size: 0pt; 
  white-space: nowrap; 
  background-color: mediumturquoise;
}

.posts-column {
  margin: 0px; 
  width: 200px; 
  height: 200px; 
  display: inline-block; 
  vertical-align: top; 
  overflow: auto;
}

#footer {
  margin: 10px 10px 25px 10px; 
  height: 50px; 
  background-color: navy;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="wrapper">
  <div id="header"></div>  
  <div id="content">    
    <div id="sub-navigation"></div>    
    <div id="main-container">
      <div id="columns-strip">    
        <div class="posts-column" style="background-color: lightgray;"></div>
        <div class="posts-column" style="background-color: darkgray;"></div>
        <div class="posts-column" style="background-color: gray;"></div>
      </div>
    </div>
  </div>
  <div id="footer"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

Ben*_*ate 9

你必须删除inline-block样式并浮动#sub-navigationdiv.inline-block不适合你想要实现的目标.当您不添加任何显示样式时,该div元素将是默认值,默认情况下block,block元素占用所有可用空间.通过浮动#sub-navigation您创建的元素,它只占用其内容所需的空间.

#sub-navigation {
  width: 200px; 
  height: 150px; 
  float : left;
  vertical-align: top; 
  background-color: forestgreen; 
  color: white;
}

#main-container {
  padding: 10px;        
  overflow: auto; 
  background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)

确保在之后添加一个clear: left元素#main-container