我具有以下结构
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id='whatStyling'>
<div class='container'>
<div class='element'>
<p class='text'>Foo</p>
</div>
</div>
<div class='container'>
<div class='element'>
<p class='text'>Bar</p>
</div>
</div>
<div class='container'>
<div class='element'>
<p class='text'>Fooooooo Baaaaaar</p>
</div>
</div>
</div>
</body>
</html>
标记
#whatStyling {
display: flex;
flex-direction: column,
}
.container {
display: flex;
}
.element {
display: flex;
padding: 0.2rem 2.8rem 0.2rem 0.8rem;
min-width: 1rem;
background-color: rgb(255, 0, 0);
}
.text {
color: rgb(128, 128, 128);
font-family: Roboto, sans-serif;
font-weight: 500;
font-size: 1.5rem;
background-color: rgb(255, 255, 255);
}
http://jsfiddle.net/g8ansow3/6/
我希望所有元素具有相同的width
,即与最长的“框”一样宽(Fooooooo Baaaaaar
)并显示为列。请注意,每个display: flex;
上都需要.container
。我进一步不知道会有多少个元素。
我的最外面的div #whatStyling
需要使用flex box
的哪种样式。
答案 0 :(得分:1)
使用inline-flex
代替flex
,然后添加width:100%
#whatStyling {
display: inline-flex; /*Changed this*/
flex-direction: column; /* Corrected a typo here*/
}
.container {
display: flex;
}
.element {
display: flex;
padding: 0.2rem 2.8rem 0.2rem 0.8rem;
min-width: 1rem;
width:100%; /*Added this */
background-color: rgb(255, 0, 0);
}
.text {
color: rgb(128, 128, 128);
font-family: Roboto, sans-serif;
font-weight: 500;
font-size: 1.5rem;
background-color: rgb(255, 255, 255);
}
<div id='whatStyling'>
<div class='container'>
<div class='element'>
<p class='text'>Foo</p>
</div>
</div>
<div class='container'>
<div class='element'>
<p class='text'>Bar</p>
</div>
</div>
<div class='container'>
<div class='element'>
<p class='text'>Fooooooo Baaaaaar</p>
</div>
</div>
</div>
答案 1 :(得分:0)
您可以添加这段代码。不需要弹性方向,因为它是默认设置。
#whatStyling {
display: flex;
flex-direction: column;
}
.container {
/*display: flex;*/
flex-grow: 1;
flex-basis: 0;
}
弹性成长:1;
flex-basis:0;
会成功的