flex 布局
flex 父容器宽度无法自适应子元素宽度
假设有个水平的菜单列表,该列表可在水平方向可滚动,使用flex
进行实现的代码如下:
<div class="menu-list-ctn">
<ul class="menu-list">
<li class="menu-item">menu1</li>
<li class="menu-item">menu2</li>
<li class="menu-item">menu3</li>
<li class="menu-item">menu4</li>
<li class="menu-item">menu5</li>
<li class="menu-item">menu6</li>
<li class="menu-item">menu7</li>
<li class="menu-item">menu8</li>
</ul>
</div>
<style>
.menu-list {
display: flex;
flex-wrap: nowrap;
}
.menu-item {
flex: none;
padding: 10px;
font-size: 16px;
line-height: 20px;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
但是现在出现一个问题,通过开发工具 Elements 可查看到,无论是.menu-list-ctn
还是.menu-list
的宽度都是414px
(假设视口宽度为414px
)。
可是,视口宽度内并没有完全显示出所有菜单项,说明.menu-list
的实际宽度应该不止414px
。
解决方案:给.menu-list
元素添加width: max-content
。
.menu-list {
display: flex;
flex-wrap: nowrap;
width: max-content;
}
1
2
3
4
5
2
3
4
5
flex布局最后一行列表左对齐
张鑫旭 - 让CSS flex布局最后一行列表左对齐的N种方法open in new window