三列,2个宽度取决于内部元素,中间取决于其他两个
Three colums, 2 width depends on inside elements and the middle depends on other two
我需要一个中锋div"fill"剩下的space其他两个。
1. 左右列的宽度取决于其中元素的数量。
2.左必在左,右必在右。
3.中心有4个元素,它们的宽度取决于父宽度(#center width)
4.中心宽度必须填满剩余space。
谢谢!!
<div id="container">
<div id="left">
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
</div>
<div id="center">
<div class="elementInCenter">1</div>
<div class="elementInCenter">2</div>
<div class="elementInCenter">3</div>
<div class="elementInCenter">4</div>
</div>
<div id="right">
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
</div>
</div>
<style>
#container
{
width: 100%;
}
#left
{
float: left;
}
.elementInLeft
{
width: 20px;
height: 20px;
margin-left: 2px;
background: #F00;
float: left;
}
#center
{
float: left;
}
.elementInCenter
{
width: 25%;
height: 20px;
text-align: center;
float: left;
background: #0F0;
}
#right
{
float: right;
}
.elementInRight
{
width: 20px;
height: 20px;
margin-left: 2px;
background: #00F;
float: left;
}
</style>
Flexbox 可以做到这一点:
#container {
display: flex;
}
.elementInLeft {
width: 20px;
height: 20px;
margin: 0 2px;
background: #F00;
float: left;
}
#center {
flex: 1;
display: flex;
}
.elementInCenter {
height: 20px;
text-align: center;
flex: 1;
border: 1px solid grey;
background: #0F0;
}
.elementInRight {
width: 20px;
height: 20px;
margin: 0 2px;
background: #00F;
float: left;
}
<div id="container">
<div id="left">
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
</div>
<div id="center">
<div class="elementInCenter">1</div>
<div class="elementInCenter">2</div>
<div class="elementInCenter">3</div>
<div class="elementInCenter">4</div>
</div>
<div id="right">
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
</div>
</div>
我需要一个中锋div"fill"剩下的space其他两个。 1. 左右列的宽度取决于其中元素的数量。 2.左必在左,右必在右。 3.中心有4个元素,它们的宽度取决于父宽度(#center width) 4.中心宽度必须填满剩余space。 谢谢!!
<div id="container">
<div id="left">
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
</div>
<div id="center">
<div class="elementInCenter">1</div>
<div class="elementInCenter">2</div>
<div class="elementInCenter">3</div>
<div class="elementInCenter">4</div>
</div>
<div id="right">
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
</div>
</div>
<style>
#container
{
width: 100%;
}
#left
{
float: left;
}
.elementInLeft
{
width: 20px;
height: 20px;
margin-left: 2px;
background: #F00;
float: left;
}
#center
{
float: left;
}
.elementInCenter
{
width: 25%;
height: 20px;
text-align: center;
float: left;
background: #0F0;
}
#right
{
float: right;
}
.elementInRight
{
width: 20px;
height: 20px;
margin-left: 2px;
background: #00F;
float: left;
}
</style>
Flexbox 可以做到这一点:
#container {
display: flex;
}
.elementInLeft {
width: 20px;
height: 20px;
margin: 0 2px;
background: #F00;
float: left;
}
#center {
flex: 1;
display: flex;
}
.elementInCenter {
height: 20px;
text-align: center;
flex: 1;
border: 1px solid grey;
background: #0F0;
}
.elementInRight {
width: 20px;
height: 20px;
margin: 0 2px;
background: #00F;
float: left;
}
<div id="container">
<div id="left">
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
<div class="elementInLeft"></div>
</div>
<div id="center">
<div class="elementInCenter">1</div>
<div class="elementInCenter">2</div>
<div class="elementInCenter">3</div>
<div class="elementInCenter">4</div>
</div>
<div id="right">
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
<div class="elementInRight"></div>
</div>
</div>