Flexbox 布局 – 表单

926 阅读1分钟

Flexbox 布局 – 表单

1、行内块元素间隔

看一个效果:

<form>
    <input type="email" name="email" placeholder="请输入">
    <button>submit</button>
</form>

效果图:

input button 行内块元素 并排在一行 并且两个空间之间有 3 - 4 像素的间隔(浏览器内置样式指定)

处理:

form {
    display: flex;
}

弹性布局的项目(item)默认没有间隔

2、 期望:输入框占据当前行所有的剩余宽度

如图效果:

CSS 代码:

input { 
    flex-grow: 1; 
}

效果如下:

3、解决 button 与 input 高度一致的问题

默认如图:

如果改变 button 的高度,input 框也会随着变高; 若想改变这种状态的话,通过 align-self / align-items

input {
    /* 弹性布局默认不改变项目的宽度,但是默认改变项目的高度。如果项目没有指定高度,将占据容器的所有高度。 eg: button 按钮变高了,导致表单元素也变高了,使得输入框的高度自动拉伸了 */
    
    align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

or:

form { 
    align-items: center / flex-start / flex-end / stretch / baseline ;
 }

center 的时候: