奇怪的间隙和垂直对齐问题

简介: 奇怪的间隙和垂直对齐问题

奇怪的间隙和垂直对齐问题


一个基本的搜索框和按钮, 没有任何样式

    <form action="">
        <input type="search" name="keywords">
        <button>搜索</button>
    </form>

chrome浏览器下, 默认应该是这样的:

经过检查, input和button都没有外边距, 那么之间的空隙哪里来的呢?

其实是由于input和button之间的换行导致的, 换行符被浏览器解析为了一个空格

将换行去掉后

    <form action="">
        <input type="search" name="keywords"><button>搜索</button>
    </form>

间隙消失了

那这里就必须不能换行吗?

并不是, 换行也是字符, 可以通过font-size:0;将其隐藏掉, 也能达到同样效果


需注意的是, font-size是可继承的属性, 可能会影响后代元素中字体的大小, 所以还需要在后代元素中重新设置字体大小, 一般默认字体大小为16px


不过这里并不影响, 因为默认样式的优先级大于所继承样式的优先级

        form {
            font-size: 0;
        }

font-size属性会影响input框的大小! input中的字体设置变大, input框自然也跟着变大


第二个问题就是, input和button其实并不在同一水平线上, button更向下一点点, (不过这里并不明显, 因为默认的尺寸都比较小, 这里也易被忽越了)


为了便于观察, 为form添加一个边框

可以看到input和下边框之间, 其实是有一点点缝隙的.

在按钮button和input中添加一些字母X,(为什么是X? 因为X下对齐的线, 叫做基线)

默认元素垂直对齐方式是 基线对齐, 所以这里两个元素中X下的线, 是对齐的

怎么解决?

重新设置元素垂直对齐方式就可以了, vertical-align 默认值是 baseline (基线对齐)

      /* 加在botton上也是可以的 */
    input {
        vertical-align: bottom;  /* 向下对齐 */
      }

水平上 奇怪的间隙, 考虑考虑是不是由于 换行符 导致

垂直上 奇怪的间隙, 考虑考虑是否由于 基线对齐 导致

相关文章
|
1月前
|
UED
使用约束布局实现居中对齐效果
【10月更文挑战第24天】我们可以看到使用约束布局实现居中对齐并不是一件难事。只要掌握了基本的方法和技巧,结合具体的场景进行灵活运用,就能轻松地实现各种居中对齐效果。在实际开发中,要不断实践和总结经验,以便更好地发挥约束布局的优势,为用户带来更优质的界面体验。
26 1
|
6月前
|
前端开发 UED
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
130 5
|
前端开发 容器
面试官:居中对齐有哪些实现方式?
面试官:居中对齐有哪些实现方式?
67 0
|
7月前
|
容器
浮动出现双边距的问题,如何解决?
浮动出现双边距的问题,如何解决?
44 2
行内块元素之间为什么会有间隙?怎么去除?
行内块元素之间为什么会有间隙?怎么去除?
157 0
盒子居中效果案例(使用位移方法)
盒子居中效果案例(使用位移方法)
97 0
盒子居中效果案例(使用位移方法)
UITableViewStyleGrouped模式下烦人的多余间距
UITableViewStyleGrouped模式下烦人的多余间距
242 0
|
前端开发 Serverless
两个盒子,左边固定宽,右边自适应,你能想到几种方法?
最近不是又要秋招了吗? 有的小伙伴就说了,你的面试专栏可是鸽了有一段时间了奥,再不更新我就取关拉! 这这这,我这不来更新了吗,三个招聘季节,更新了三篇,**合情,合理~** ~~再也不画饼了~~
|
前端开发 容器
div水平布局两边对齐
父容器div使用 position: relative;,子div使用 position:absolute;定位,注意边距问题。
184 0
div水平布局两边对齐