html - 为什么我的元素比指定高度高 4px?
问题描述
我将输入放在标题中,出于测试目的,我希望输入与标题一样高,但是当我将输入高度设置为与标题相同的高度时,输入更高......所以我添加了margin: 0px
和padding: 0px
输入...但仍然比高度高。当我将输入的高度设置为 46px 时,它等于标题,即 50px 高度。
.container{
width: 96%;
margin: 0 auto;
}
#header{
height: 50px;
background-color: #05568D;
border-radius: 10px 10px 0px 0px;
position: relative;
}
#searchId{
padding: 0px;
margin: 0px;
height: 46px;
}
<div id="header" class="container">
<input type="text" placeholder="Search.." name="search" id="searchId">
</div>
这是什么原因?我该如何纠正它。
解决方案
这是因为box-sizing
属性。默认box-sizing
值为content-box
。
content-box 为您提供默认的 CSS 框大小行为。如果将元素的宽度设置为 100 像素,则元素的内容框将为 100 像素宽,并且任何边框或填充的宽度都将添加到最终渲染中。
因此,当您在输入框中输入 46px 时,它的高度变为 50px(内容:46px + 边框:4px)。
放入box-sizing: border-box
searchId。
推荐阅读
- sql - 在 ClickHouse 中使用 has(x,y) 函数优化 Array 类型列的数据查找
- arrays - 基于scala中的条件的数组过滤
- doxygen - Cpp文件Doxygen中的静态函数
- c# - 使用 .Net Framework 4.0 的 C# 调用图 API
- angular - 使用 QueryList 访问 ContentChildren 中的 HTMLButtonElement
- javascript - 无法在反应中导入模块
- ansible - 如何在ansible中限制set_fact变量的范围
- php - php 不使用 file.php?data=value 将数据添加到数据库
- react-native - 在 react-native-web (expo) 中聚焦时更改 TextInput 的边框颜色
- matlab - 如何从高斯分布中随机初始化深度网络中层的权重?