带文字的DIV应该与文本所需的一样宽。
Bar DIV应该与占用所有剩余空间所需的宽度(宽度相等)相同。 DIV是动态添加的,因此最好避免使用绝对大小,例如宽度= 25%。
栏之间的空格应为5px。
http://jsfiddle.net/5uzbxvss/1/
<div class="container">
<div class="title">
<h3>Text</h3>
</div>
<div class="bars">
<div class="outer">
<div id="task_bar_1" class="inner">
0%
</div>
</div>
<div class="outer">
<div id="task_bar_2" class="inner">
0%
</div>
</div>
<div class="outer">
<div id="task_bar_3" class="inner">
0%
</div>
</div>
<div class="outer">
<div id="task_bar_4" class="inner">
0%
</div>
</div>
</div>
</div>
body {
margin: 0;
}
.container {
}
.title {
float: left;
}
.container h3 {
margin-top: 0;
margin-bottom: 0;
padding-top: 2px;
}
.bars {
overflow: hidden;
}
.outer {
background-color: grey;
padding: 3px;
margin-left: 5px;
float: left;
}
.inner {
background-color: orange;
color: white;
text-align: center;
}
答案 0 :(得分:2)
您可以使用灵活的盒子解决方案来解决您的问题。创建一个flexbox容器,并为嵌套在其中的每个div分配flex-grow: 1
。
支持所有现代浏览器+ IE11:P Browser Support
body {
margin: 0;
}
.container {} .title {
float: left;
}
.container h3 {
margin-top: 0;
margin-bottom: 0;
padding-top: 2px;
}
.bars {
overflow: hidden;
display: flex; /* Add */
}
.outer {
background-color: grey;
padding: 3px;
margin-left: 5px;
float: left;
flex-grow: 1; /* Add */
}
.inner {
background-color: orange;
color: white;
text-align: center;
flex-grow: 1 /* Add */
}
<div class="container">
<div class="title">
<h3>I am a very long text to test it</h3>
</div>
<div class="bars">
<div class="outer">
<div id="task_bar_1" class="inner">
0%
</div>
</div>
<div class="outer">
<div id="task_bar_2" class="inner">
0%
</div>
</div>
<div class="outer">
<div id="task_bar_3" class="inner">
0%
</div>
</div>
<div class="outer">
<div id="task_bar_4" class="inner">
0%
</div>
</div>
</div>
</div>
答案 1 :(得分:1)
您可以使用CSS表格:
使.container
表格与正文一样宽:
.container {
display: table;
width: 100%;
}
将.title
设为该表格的单元格,并将其宽度设置为其内容所需的最小值:
.title {
display: table-cell;
width: 0;
white-space: nowrap;
}
.bars
将包含在匿名表格单元格中,该表格单元格将涵盖.title
使.bars
表格与匿名表格单元格一样宽,在单元格中平均分配宽度(忽略其内容),并在单元格之间添加5px分隔:
.bars {
display: table;
width: 100%;
table-layout: fixed;
border-spacing: 5px;
}
制作该表的.outer
个单元格:
.outer {
display: table-cell;
}
body {
margin: 0;
}
.container {
display: table;
width: 100%;
}
.title {
display: table-cell;
width: 0;
white-space: nowrap;
}
.title h3 {
margin: 0;
padding-top: 2px;
}
.bars {
display: table;
table-layout: fixed;
width: 100%;
border-spacing: 5px;
}
.outer {
background-color: grey;
padding: 3px;
display: table-cell;
}
.inner {
background-color: orange;
color: white;
text-align: center;
}
<div class="container">
<div class="title">
<h3>Text</h3>
</div>
<div class="bars">
<div class="outer">
<div id="task_bar_1" class="inner">0%</div>
</div>
<div class="outer">
<div id="task_bar_2" class="inner">0%</div>
</div>
<div class="outer">
<div id="task_bar_3" class="inner">0%</div>
</div>
<div class="outer">
<div id="task_bar_4" class="inner">0%</div>
</div>
</div>
</div>