Spr*_*der 17 html css calc width css3
我不知道会包含多少.child元素,.parent但我知道它们各自的宽度.
我想设置宽度.parent等于(每个的宽度.child)*(总数.child)
我不想用floats和width: auto;
我可以calc()不使用Javascript 做点什么吗?
**CSS:**
.parent {
height: 100%;
width: calc({number of children} * {width of each child = 100px});
}
.child {
height: 100px;
width: 100px;
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class="parent">
<div class="child">
<div class="child">
<div class="child">
</div>
Run Code Online (Sandbox Code Playgroud)
soo*_*oon 20
我知道这有点晚了,但希望这会有助于寻找类似解决方案的人:
<div class="parent" style="display: inline-flex">
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
</div>
Run Code Online (Sandbox Code Playgroud)
诀窍是inline-flex用于parent和inline-table为child.一切都充满活力.我把表滚动水平通过添加另一个grandparent具有overflow-x:scroll;:
<div class="grandparent" style="width: 300px; overflow-x: scroll; background: gray">
<div class="parent" style="display: inline-flex">
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
<div class="child" style="display: inline-table">some button</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
小智 10
使用
{ width: max-content }
Run Code Online (Sandbox Code Playgroud)
在父节点上应该可以正常工作。这也是一个实验性功能。(我不知道为什么其他人不发布这种方法。)
* {
margin:0;
padding:0;
box-sizing:border-box;
}
.parent {
height: 100%;
display:inline-block;
background:#bada55;
font-size:0; /* clear whitespace*/
}
.child {
height: 100px;
width: 100px;
border:1px solid red;
display:inline-block;
}Run Code Online (Sandbox Code Playgroud)
<div class="parent">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>Run Code Online (Sandbox Code Playgroud)