React+Ant Design:如何创建不同尺寸输入框?代码尝试后无效
在React里用Ant Design做不同尺寸输入框的正确方法
嘿,我看你已经尝试用size属性来设置输入框大小,但所有输入框显示都一样对吧?这情况一般是两个原因:要么是Ant Design版本的问题,要么是你的自定义样式不小心覆盖了组件默认样式。
先确认你的Ant Design版本
Ant Design从v4开始,Input组件的size属性是完全支持large/default/small这三个值的。如果你的版本是v3或者更早,写法虽然类似,但可能会有兼容性问题,更建议你升级到v4或v5的稳定版本。
你可以打开项目里的package.json,看看antd的版本号:
"antd": "^4.24.0" // 或者更高的v5版本都可以
给你一个能正常运行的完整示例
我写了一个简单的Demo,你可以直接参考,复制过去就能看到不同尺寸的输入框:
import React from 'react'; import { Input } from 'antd'; import { UserOutlined } from '@ant-design/icons'; const InputSizeDemo = () => { return ( <div style={{ display: 'flex', flexDirection: 'column', gap: '16px', padding: '20px' }}> <Input size="large" placeholder="Username" prefix={<UserOutlined />} /> <Input placeholder="Default size" /> <Input size="large" placeholder="Password" /> <Input size="small" placeholder="Small size" /> </div> ); }; export default InputSizeDemo;
如果还是不行,排查样式覆盖问题
要是版本没问题,但输入框尺寸还是一样,那大概率是你的自定义样式或者全局样式把Ant Design的默认样式覆盖了:
- 检查有没有写过类似
.ant-input的全局CSS,是不是硬设置了固定的height或者padding - 看看是不是用了Tailwind CSS或者CSS Modules这类工具,不小心把组件的默认样式冲掉了
- 打开浏览器的开发者工具,选中输入框元素,看看
height、padding这些属性是不是被划掉(说明被覆盖了)
额外提一句Ant Design v5的小技巧
如果你用的是v5版本,除了size属性,还可以直接用style自定义更灵活的尺寸,比如:
<Input style={{ height: '52px', fontSize: '19px' }} placeholder="自定义大小的输入框" />
按照上面的方法调整后,应该就能看到不同尺寸的输入框啦!
内容的提问来源于stack exchange,提问作者CuteBoy




