如果div旁边没有其他元素,我怎么能让div填充100%宽度?

man*_*che 22 html css

我有这样的简单标记(标签菜单):

<div class="container">
   <div class="tab1"></div>
   <div class="tab2"></div>
   <div class="tab3"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

当所有元素具有33%的相等宽度以填充容器的100%时就是这种情况.

是否可以为所有容器应用一般CSS规则,以自动检测是否只有一个其他容器或没有容器?然后调整标签的宽度?("STRECH到合适")

或许与某事min-widthmax-width

Nen*_*car 28

根据您需要支持的浏览器,您可以使用flexbox:

$('.tab').click(function() {
  $(this).css('display', 'none');
});
Run Code Online (Sandbox Code Playgroud)
.container {
  display: flex;
}

.tab {
  border: 1px solid black;
  padding: 5px;
  flex: 1;
  margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)
<p>Click a tab to remove it</p>
<div class="container">
   <div class="tab">Tab 1</div>
   <div class="tab">Tab 2</div>
   <div class="tab">Tab 3</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • @TylerH我认为jQuery只是出于演示的原因而被用于隐藏点击,它根本不会影响解决方案. (2认同)

Pau*_*e_D 15

你的意思是像flexbox?

.container {
  display: flex;
  height: 50px;
  margin-bottom: 1em;
}
[class*="tab"] {
  flex: 1;
  border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="tab1"></div>
</div>

<div class="container">
  <div class="tab1"></div>
  <div class="tab2"></div>
</div>

<div class="container">
  <div class="tab1"></div>
  <div class="tab2"></div>
  <div class="tab3"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

或CSS表

.container {
  display: table;
  height: 50px;
  width: 100%;
}
[class*="tab"] {
  display: table-cell;
  border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="tab1"></div>
</div>

<div class="container">
  <div class="tab1"></div>
  <div class="tab2"></div>
</div>

<div class="container">
  <div class="tab1"></div>
  <div class="tab2"></div>
  <div class="tab3"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 对表格进行了推荐[更多支持](http://caniuse.com/#search=table) (3认同)

Pbk*_*303 6

您可以使用display:tabledisplay:table-cell查看下面的代码

HTML:

<div class="container">
   <div class="tab">Tab 1</div>
   <div class="tab">Tab 2</div>
   <div class="tab">Tab 3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.container {
  display: table;
  width:100%;
}

.tab {
  border: 1px solid black;
  padding: 5px;
  display: table-cell;
  margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)