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

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

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


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

    <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;  /* 向下对齐 */
      }

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

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

相关文章
|
16天前
|
UED
使用约束布局实现居中对齐效果
【10月更文挑战第24天】我们可以看到使用约束布局实现居中对齐并不是一件难事。只要掌握了基本的方法和技巧,结合具体的场景进行灵活运用,就能轻松地实现各种居中对齐效果。在实际开发中,要不断实践和总结经验,以便更好地发挥约束布局的优势,为用户带来更优质的界面体验。
21 1
|
3月前
|
前端开发 JavaScript 开发者
告别居中难题!揭秘未知宽高元素如何轻松实现水平和垂直居中的神奇技巧!
【8月更文挑战第23天】本文介绍了在Web前端开发中实现未知宽度和高度元素的水平垂直居中的四种方法:使用Flexbox布局、Grid布局、绝对定位结合transform属性以及利用负margin。每种方法均提供了示例代码,帮助开发者根据不同场景和兼容性需求选择最合适的解决方案,从而轻松应对各种居中布局需求。
35 1
|
5月前
|
前端开发 UED
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
112 5
|
前端开发 容器
面试官:居中对齐有哪些实现方式?
面试官:居中对齐有哪些实现方式?
66 0
|
11月前
两个或者多个图片上下之间有空隙
两个或者多个图片上下之间有空隙
行内块元素之间为什么会有间隙?怎么去除?
行内块元素之间为什么会有间隙?怎么去除?
147 0
|
iOS开发
iOS开发-调整文字之间间距
iOS开发-调整文字之间间距
292 0
盒子居中效果案例(使用位移方法)
盒子居中效果案例(使用位移方法)
93 0
盒子居中效果案例(使用位移方法)
UITableViewStyleGrouped模式下烦人的多余间距
UITableViewStyleGrouped模式下烦人的多余间距
238 0
|
前端开发 容器
div水平布局两边对齐
父容器div使用 position: relative;,子div使用 position:absolute;定位,注意边距问题。
181 0
div水平布局两边对齐