html - CSS:Flex元素在包含输入时有额外的空间
问题描述
为什么当我设置为 have a of和to have a of.content
时元素有一些额外的空间?当我删除. 输入占用了额外的空间,不再有这个问题。(我想限制输入的宽度,所以我在..input-field
width
20%
input
width
100%
width: 20%
.content
width:20%
.input-field
*{
margin:0;
padding: 0;
box-sizing: border-box;
}
.parent {
display: flex;
flex-direction: column;
}
.content:nth-child(1) {
display: flex;
align-self: flex-end;
}
input {
width: 100%;
}
.input-field {
display: flex;
justify-content: space-between;
align-items: center;
width: 20%;
min-width: 10rem;
max-width: 20rem;
}
label {
margin-right: 0.5rem;
}
<div class="parent">
<div class="content">
<div class="input-field">
<label>hey</label>
<input type="text" />
</div>
</div>
<div class="content"><p>hey</p></div>
<div class="content"><p>you</p></div>
</div>
解决方案
百分比是相对于父元素的。当你给它时20%
,.input-field
它会相对于父级.ie,.content
所以它占据 20%,.content
但它低于最小宽度,所以它会回落到min-width: 10rem
最后留下一个空白空间,因为 even10rem
更小超过 100% .content
。如果您不想要额外的空间,您可以:
- 设置
width:min-content
为.content
它只会占用内容的固有最小宽度,这有点尴尬。 - 设置
width:100%
并.input-field
控制其 parent 的大小.content
。
<style>
.content {
width: min-content;
}
*{
margin:0;
padding: 0;
box-sizing: border-box;
}
.parent {
display: flex;
flex-direction: column;
}
.content:nth-child(1) {
display: flex;
align-self: flex-end;
}
input {
width: 100%;
}
.input-field {
display: flex;
justify-content: space-between;
align-items: center;
width: 20%;
min-width: 10rem;
max-width: 20rem;
}
label {
margin-right: 0.5rem;
}
</style>
<div class="parent">
<div class="content">
<div class="input-field">
<label>hey</label>
<input type="text">
</div>
</div>
<div class="content"><p>hey</p></div>
<div class="content"><p>you</p></div>
</div>
推荐阅读
- c - 手套:使用单个文本文件进行训练。GLoVE 是否尝试将其读入内存?还是流式传输?
- git - 如何使用 cmake 和 git 部署版本化版本?
- html - svg 干扰按钮
- python - Python 字符串、算法(如(如在 facebook 中)系统)
- prolog - 多个具有相同接地头的 Prolog 子句实例。除了(可疑的)计算控制之外,还有什么用途?
- java - 如何设置一个 txt 文件,以便它可以在 .jar 文件内部使用?
- python - Python 2.7.17 - PyAutoGUI 说 Pillow 未安装,但已安装
- reactjs - 获取 API 失败
- javascript - 然后 axios.get 的代码未完成并捕获错误
- apache-kafka - 在 Kafka 中,如果客户端更改主题的分区,它会创建一个新主题吗?它会导致再平衡吗?