为何设置`display: 'flex', alignItems: 'center'`之后,子标签不能正常的浮动了?

作者站长头像
站长
· 阅读数 14

我有如下代码:

<div style={{
    textAlign: 'left',
    height: '40px',
    }}>
    <label style={{float: 'left'}}>{props.title}</label>
    <input style={{float: 'right'}} placeholder='搜索:'></input>
</div>

我想要div里面的子标签垂直居中:为何设置`display: 'flex',                 alignItems: 'center'`之后,子标签不能正常的浮动了?

然后我设置:display: 'flex', alignItems: 'center'

<div style={{
                textAlign: 'left',
                height: '40px',
                display: 'flex',
                alignItems: 'center'
                }}>
                <label style={{float: 'left'}}>{props.title}</label>
                <input style={{float: 'right'}} placeholder='搜索:'></input>
            </div>

可以做到垂直居中了,但是可是input组件不右浮动了。为何设置`display: 'flex',                 alignItems: 'center'`之后,子标签不能正常的浮动了?

回复
1个回答
avatar
test
2024-08-11

因为 float 跟 flex 本身就不是一个时代的东西,自然不能共存。首先,建议你好好了解一下 flex 布局。

此时你有几个选择:

  1. 使用 flex,调整主轴(默认为横向)布局,比如 justify-content: space-between 或者右边的元素 margin-left: auto
  2. 使用 position: absolute 固定位置
  3. 回到过去
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容