css - 在显示中使用起始宽度初始化 div:flex
问题描述
我正在努力实现特定的布局。我有一排横跨屏幕的宽度,其中有许多内联 div(选项卡)。
我希望所有选项卡都以相同的大小(比如 200 像素)开始,但是当我们有太多选项卡时,然后调整以适应屏幕。使用display: flex
,我们可以实现拟合(参见下面的代码),但我不确定如何将每个选项卡的宽度初始化为相同。
TLDR:如何使所有选项卡以相同的大小开始,然后根据需要按比例缩小以适应屏幕?
function newItem() {
var newTab = document.createElement('div')
newTab.classList.add('tab')
newTab.innerHTML = 'Hello'
document.querySelector('.container').appendChild(newTab)
}
body, html {
width: 100%
}
.container {
display: flex;
width: calc(100% - 10px);
}
.tab {
display: inline;
height: 20px;
padding: 1px;
max-width: 200px;
background-color: #bbb;
border: 1px solid black;
overflow: hidden;
}
<div class="container">
<button onclick="newItem()">New</button>
<div class="tab">One</div>
<div class="tab">Two</div>
<div class="tab">Twenty Three</div>
</div>
解决方案
您可以通过给孩子们一个相同的值来强制孩子们“均匀地填充父母” 。flex
在这种情况下,您可以简单地应用于flex: 1
定义.tab
。
function newItem() {
var newTab = document.createElement('div')
newTab.classList.add('tab')
newTab.innerHTML = 'Hello'
document.querySelector('.container').appendChild(newTab)
}
body, html {
width: 100%
}
.container {
display: flex;
width: calc(100% - 10px);
}
.tab {
display: inline;
height: 20px;
padding: 1px;
max-width: 200px;
background-color: #bbb;
border: 1px solid black;
overflow: hidden;
flex: 1;
}
<div class="container">
<button onclick="newItem()">New</button>
<div class="tab">One</div>
<div class="tab">Two</div>
<div class="tab">Twenty Three</div>
</div>
推荐阅读
- r - R用1到-1之间的负数和正数缩放向量
- python - 使用 Tkinter 选择日期范围
- java - Java中的面向对象多态逻辑
- influxql - 如何用单个值替换空的 InfluxDB 查询结果以进行单个统计数据可视化
- typescript - Typescript:通过索引对类函数进行类型化访问
- git - Jenkins 管道将 dist 文件夹从 git repo 复制到本地服务器文件夹
- spring - 覆盖依赖 jar 文件中的 spring-boot 属性
- javascript - 反应完美的滚动条导致小屏幕尺寸出现问题
- php - laravel 7 sanctum Hash::check 总是返回 false
- python - 在 Python 中使用 Q-learning 和 OpenAI-Gym 时如何从地图中取出对象