两个input标签对不齐?

新手上路,请多包涵

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    input[type="text"] {
      width: 240px;
      height: 55px;
      border: 1px #000 solid;
      box-sizing: border-box;
    }
  
    input[type="submit"] {
      /*position: relative;
      top: 1px;*/
      width: 50px;
      height: 55px;
      background-color: #fff;
      border: 1px #000 solid;
    }
  </style>
</head>
<body>
  <input type="text">
  <input type="submit">
</body>
</html>

submit比text高一个像素。

阅读 4.7k
4 个回答

你的text按钮中设置box-sizing: border-box;属性,这个属性导致盒子的大小是由盒子的边框开始计算。
而submit按钮没设置这个属性,盒子的大小是由盒子的内容计算。
实际上submit按钮比text高了2px。。
解决方式是把text中的box-sizing: border-box;去掉,或者是给submit加上。

顺便提一下,盒子的内容不包括盒子的padding值,如果不加box-sizing: border-box;属性的话,计算方式是,内容+padding+border

input元素 和display:inline-block同行的baseline的问题,可以给input加上vertical-align: top;来对齐

第一种:给input都加个float;
第二种:给input都加个vertical-align: top;
第三种:给input{margin: 0;padding: 0;}就好了

vertical-align: top;//顶部对齐
vertical-align: middle;//中间对齐
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题