input输入框与按钮存在间隙,且不能上下对齐问题

本文记录了在HTML页面制作中,input输入框与button按钮出现间隙及无法上下对齐的问题。问题源于HTML标签间的换行符。通过设置浮动可以消除间隙,但可能导致对齐问题。解决方案是理解并利用CSS浮动规则,使输入框和按钮达到上下对齐的效果。

博主因为太久没写页面了(之前一直在看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( ̄▽ ̄)ブ!

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值