gpt4 book ai didi

html - 为什么这个 div 的背景应该完全由其内容填充时却显示在顶部?

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:31 27 4
gpt4 key购买 nike

我有一个 div 包含另一个包含 inputdiv。外部 div 从内部 div 获取高度,内部 divinput 获取高度。 div 上没有填充或边距。我已经从输入中删除了边框。为什么外部 div 的红色背景在顶部显示了一个像素?当 input 具有 padding: 0 时,为什么它会变得更糟? (使用复选框进行尝试。)

我已经将它与 inputborder: none 风格隔离开来(删除红色条),但我想了解 < em>为什么它有这种效果(在 Chrome 和 Firefox 上)。

document.querySelector("input[type=checkbox]").addEventListener("click", function() {
document.querySelector("input[type=text]").classList.toggle("zero-padding", this.checked);
});
body {
box-sizing: border-box;
}
.outer {
display: inline-block;
width: 5em;
border: 1px solid black;
background: red;
/* divs don't have padding or margin by default, but I did try this just in case
padding: 0;
margin: 0;
*/
}
.inner {
/* divs don't have padding or margin by default, but I did try this just in case
padding: 0;
margin: 0;
*/
}
.inner input {
border: none;
border-radius: 0;
width: 100%;
margin: 0;
background: white;
}
.zero-padding {
padding: 0;
}
<div class="outer"><div class="inner"><input type="text"></div></div>
<div>
<label>
<input type="checkbox"> Add <code>padding: 0</code> to the <code>input</code>
</label>
</div>

我在 Linux 上的 Chrome v58 上的结果:

Result on Chrome

我在 Linux 上的 Firefox v53 上的结果:

Result on Firefox

最佳答案

那些 div 默认属性,例如字体大小、行高。我通过将“外部”div 的行高设置为 0 解决了这个问题;

document.querySelector("input[type=checkbox]").addEventListener("click", function() {
document.querySelector("input[type=text]").classList.toggle("zero-padding", this.checked);
});
body {
box-sizing: border-box;
}
.outer {
display: inline-block;
width: 5em;
border: 1px solid black;
background: red;
line-height: 0;
/* divs don't have padding or margin by default, but I did try this just in case
padding: 0;
margin: 0;
*/

}
.inner {
/* divs don't have padding or margin by default, but I did try this just in case
padding: 0;
margin: 0;
*/
}
.inner input {
border: none;
border-radius: 0;
width: 100%;
margin: 0;
background: white;
}
.zero-padding {
padding: 0;
}
<div class="outer"><div class="inner"><input type="text"></div></div>
<div>
<label>
<input type="checkbox"> Add <code>padding: 0</code> to the <code>input</code>
</label>
</div>

关于html - 为什么这个 div 的背景应该完全由其内容填充时却显示在顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43789790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com