1. input 与 button 为什么有空隙?
- 要明白为什么,需要了解一下几点基础知识(耐心看完,你会发现竟如此简单)
    1. input 与 button 都属于行级块元素,都具有文本特性,
    2. html中有一个被称之为:空白文本分隔符的东东(即:html中,无论你在两个行级或行块级元素之间写多少个回车和空格都会被折叠一个空格,我在这里称它为空白文本分割符)
    3. 关键也就来了:我们在写的html代码中,你会发现我们的input 与 buton元素之间是不是有个回车,而这个回车就是我上面所说的空白文本分割符,他是有大小的,所以会出现 input 与 buttom之间有空隙的现象
- 解决办法:
    - 知道了为什么,那么解决办法就相当的容易了,直接删除我们html代码中input 与 button 之间的回车即可.
 
2. input 与 buttom 为什么 设置的 等高 却 不等高? 等高却对不齐?
- 我希望你可认真按照下面的方法跟着探索(你会发现,竟~哈哈哈)
    1. 创建一个test.html
    
    2. 敲上input 和 button两个元素,定义宽高,因为我们要测试为什么高度一致却对不齐,所以,我们给它们等高,等边框,宽度随意,
    
    [注意:input与button之间有缝隙问题,要对齐,先去掉缝隙,如何解决:具体参考上个问题]
 1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>Document</title>
8 <style>
9 * {
10 padding: 0;
11 margin: 0;
12 }
13 input {
14 width: 180px;
15 height: 40px;
16 border: 1px solid #008c8c;
17 }
18
19 button {
20 width: 50px;
21 height: 40px;
22 background: inherit;
23 border: 1px solid black;
24 /* box-sizing: content-box; */
25 }
26 </style>
27 </head>
28
29 <body>
30 <input type="text"><button>按钮</button>
31 </body>
32
33 </html>

以上代码在浏览器中查看,你会发现明明设置的是等高,但input却比button高度要高一些(为什么呢,继续往下看)
3. 右键检查(或F12使用开发者工具),选中input元素,查看他的盒子模型,你会发现,咦,这玩意除了我们设置的宽高,居然还有自带的padding,这时候你会想,是不是padding的问题,(其实button也是有自带的padding的),
为了排除padding的影响,我们在代码中插入*{
    padding:0;
    margin:0;
}
这时候你会发现,咦,好像还是对不齐,看来不是padding的问题(其实,我们在开发中,一般都会初始化所有元素的padding和margin),所以这一点很明显不是影响input 和 button对不齐的原因
4. 此时,我们在选中button元素,查看他的盒模型,咦,一会惊奇的发现,卧槽,怎么它的宽度是48px,高度是38px了呢,我们明明设置的是 50px 和 40px啊,但是你在细心观察你会发现,咦,边框加上好像就是我们设置的50px和40px了,哇,这不就是box-sizing:border-box的表现吗?(我们此时在Computed中查看计算样式 box-sizing 发现还真是 border-box)
到了这里,我们的问题终于有点眉目了,不要放弃,坚持就是胜利,距离大神只差一步,我们每次探索问题的每一步
5. 这点需要知道:
Chrome浏览器box-sizing默认是content-box,即padding 和 border都是不算在我们设置的width 和 height中的,
而 box-sizing : border-box,即 padding 和 border 是算在width 和 height中的; 
6. 到了这里相必大家也都知道为什么 input 和 button 对不齐的,这也就是为什么我们查看button的盒模型时,它的width变为38px的原因了,
7. **此时,我们把button的width改为 42px(记得改高度,我就不在写代码了)
8. 最后你会发现还是有一丢丢的对不齐,按理来讲它应该对齐了呀,
哈哈哈,此时才发现,我们只是解决了第一个小问题,为什么不等高,
其实,我们起初就以为他们是对不起,而忽略了等不等高的问题,不着急继续
9. 给input设置 vertical-align:1px;你会发现,卧槽,完美对齐了,
,以上的都是自己摸索的过程,但也只完美的解决了第一个隐藏问题,为什么不等高,但为什么对不齐,其实我也不太清楚,只是凑巧用学过的属性,用到了这里,虽然解决了,但还是不清楚所以然,忘有大家有清楚的可以指导一下,谢谢大家(记得留言探讨哦~)

input 与 button 的问题 (空隙/不等高/对不齐)及 解决办法的更多相关文章

  1. wpf button的mouse(leftbutton)down/up,click事件不响应解决办法

    按照WPF的帮助说明,某些控件的路由事件被内部处理了,已经被标记为Handled,自行定义的事件处理代码便不再起作用了,有时候会很郁闷!         不过WPF提供了必要的方法.         ...

  2. 服务器CPU使用率高的原因分析与解决办法

    我们的服务器在使用操作系统的时候,用着用着系统就变慢了,打开“ 任务管理器 ”一看,才发现CPU使用率达到80%以上.这是怎么回事情呢?遇到病毒了吗?硬件有问题?还是系统设置有问题呢?在本文中将从硬件 ...

  3. 在写移动端时,a标签或者input标签等 在手机上点击背后会有阴影的解决办法

    a,input{-webkit-tap-highlight-color:rgba(255,0,0,0);} 被背景设置成透明的就行了

  4. input属性设置type="number"之后, 仍可输入e, E, -, + 的解决办法

    <el-input v-model="scope.row.variables.leaderbuweiscores.score" @keyup.native="cha ...

  5. 遭遇input与button按钮背景图失效不显示的解决办法

    笔者从事网页前端代码页面工程师已有多年,作为一个网页重构人员常常会遇到一些莫名其妙的DIV+CSS(正确的说法是XHTML+CSS)在 IE.FireFox火狐. 谷歌浏览器CHROME.苹果浏览器S ...

  6. 表单提交按钮input和button、a的差异

    现在普遍的在网页中,表单提交数据的按钮最常见实用有三种,一种是input,一种是button,最后一种,是其他如a标签,div标签,span标签代替而来.在以前的日子里,大家都习惯于用input,因为 ...

  7. input、button、a标签 等定义的按钮尺寸的兼容性问题

    在项目中有遇到这类问题,搜索了一下解决方式,采用链接:https://segmentfault.com/q/1010000000190931 里各位楼主的答案,摘抄如下: 例子如下: HTML: &l ...

  8. 解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题 && 一般的浏览器input和button的高度不一致问题

    解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题 如果我们把一个表单设置位 autofocus ,这时这个表单在获取焦点后就会产生淡黄色的背景,我们就是使用!importa ...

  9. css中input与button在一行高度不一致的解决方法

    在写html表单的时候,发现了一个问题:input和button设置了一样的宽高,但是显示高度确不一致,先看代码: <style> input,button{ width:100px; h ...

随机推荐

  1. MATLAB中conv2的详细用法 (以及【matlab知识补充】conv2、filter2、imfilter函数原理)

    转载: 1.https://blog.csdn.net/jinv5/article/details/52874880 2.https://blog.csdn.net/majinlei121/artic ...

  2. 可能是东半球第二好用的软件工具全部在这里(update in 2020.10.09)

    1. 产品经理工具种草 浏览器:Google Chrome 网络浏览器 原型绘制软件:墨刀- 在线产品原型设计与协作平台(https://modao.cc/).摹客mockplus - 摹客,让设计和 ...

  3. Hello World背后的事情

    Hello World是不少人学习C++的第一项内容,代码看似简单,很多东西却涉及根本 #include <iostream> using namespace std; int main( ...

  4. VSCODE 配置eslint规则和自动修复

    全局安装eslint 打开终端,运行npm install eslint -g全局安装ESLint. vscode安装插件 vscode 扩展设置 依次点击 文件 > 首选项 > 设置 { ...

  5. php中 ob_函数 例:ob_start();用法

    ob,输出缓冲区,是output buffering的简称,而不是output cache.ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额外的负担 ob的基本原则:如果o ...

  6. 为什么在M3架构中 PC总是返回加4

    由于CPU是3级流水线的方式运行.在执行第一条指令时候,已经对第二条指令译码,对第三条指令取值. PC总是指向正在取值的指令.由于在M3架构中,采用Thumb-2指令,每个指令占据2个字节,所以PC总 ...

  7. 营口6378.7939(薇)xiaojie:营口哪里有xiaomei

    营口哪里有小姐服务大保健[微信:6378.7939倩儿小妹[营口叫小姐服务√o服务微信:6378.7939倩儿小妹[营口叫小姐服务][十微信:6378.7939倩儿小妹][营口叫小姐包夜服务][十微信 ...

  8. 1、微信小程序开发介绍。

    微信小程序如何能达到快速的开发效果,下面首先介绍一下需要的框架,使用这些框架可以减少大部分编写代码时间. 微信小程序使用的框架:weui开源框架 后端数据使用的框架(包含管理和api接口框架):YiS ...

  9. day21 Pyhton学习 模块

    一.模块:就是一个包含了python定义和声明的文件,文件名是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用python编写的代码(.py文件) 2.已被编译为共 ...

  10. python接口测试之日志功能

    之前在简书中看了一篇关于日志功能的文档,供大家参考:https://www.jianshu.com/p/62f7b49b41e7 Python通过logging模块提供日志功能,所以直接导入即可 im ...