博主因为太久没写页面了(之前一直在看JS啥的),四处碰壁之后决定先务实基础,在此记录自己在务实基础的路上所遇到的坑!!!
在我们仿写页面时,经常碰到input标签和button标签并列,如百度首页的搜索框就是一个典型的例子:

然而,当我自己写出的效果:
<div id="middle">
<img src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" alt="">
<div class="search">
<form action="">
<input type="text">
<button>百度一下</button>
</form>
</div>
</div>
* {
margin: 0;
padding: 0;
}
#middle {
width: 80vw;
margin: 0 auto;
}
#middle img {
display: block;
margin: 0 auto;
width: 270px;
height: 129px;
padding-bottom: 30px;
}
.search {
overflow: hidden;
text-align: center;
}
#middle form {
text-align: center;
overflow: hidden;
margin: 0 auto;
display: inline-block;
}
#middle input {
outline: none;
height: 16px;
width: 520px;
padding: 12px 16px;
border: 2px solid #4e6ef2;
/*border-right: none;*/ //无关紧要
border-bottom-left-radius: 10px;
border-top-left-radius: 10px;
font-size: 16px;
font-weight: 600;
/*float: left;*/ //解决存在间隙,且两个盒子上下不对齐
}
#middle button {
background-color: #4e6ef2;
outline: none;
width: 100px;
height: 40px;
line-height: 40px;
border: 2px solid #4e6ef2;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
box-sizing: content-box;
font-size: 18px;
color: white;
cursor: pointer;
/*float: left;*/ //解决存在间隙,且两个盒子上下不对齐
}

为什么Input和button会存在空隙呢?原因很简单,因为还是我们写HTML标签时input标签和button标签之间存在一个换行符,这个就是空隙出现的原因
解决办法:同时给input和button设置浮动(上面注释部分)
但是,还有一个问题就是Input标签和button标签是不完全对齐的,我们可以打开F12查看。
只不过当我们设置浮动后,由于浮动的规则:
规则5:浮动元素的顶边不能比前方任何一个浮动元素或块级元素的顶边高。 ——《CSS权威指南》490页
规则8:浮动元素必须放在尽可能高的位置上。——《CSS权威指南》492页
在设置浮动后,因为规则5,所以按钮必须要比输入框低,又由于规则8,按钮因为和输入框同一行,尽可能高的位置就是顶部处于一条直线上,因此两个同样高度的盒子会上下对齐。
效果演示:

好了,本次记录就这样,如果能帮助到你,麻烦点个赞哦o( ̄▽ ̄)ブ!
本文记录了在HTML页面制作中,input输入框与button按钮出现间隙及无法上下对齐的问题。问题源于HTML标签间的换行符。通过设置浮动可以消除间隙,但可能导致对齐问题。解决方案是理解并利用CSS浮动规则,使输入框和按钮达到上下对齐的效果。
403





