将标签和输入字段放在同一行,并带有填充

Posted

技术标签:

【中文标题】将标签和输入字段放在同一行,并带有填充【英文标题】:Place label and input field on the same row, with padding 【发布时间】:2016-02-22 02:05:55 【问题描述】:

我想在同一行显示一个标签和一个文本字段。

我在这里查看了 Label on the left side instead above an input field 并将我的代码更改为使用 form-inline

<div className="form-group form-inline">
    <label style=display: 'margin-right:10px'>Category</label>
    <select className="form-control" value=this.state.selectCategoryValue onChange=this.handleSelectCat style=display:'inline-block'>
        <option value="defaultCategory" disabled selected></option>
        categoryDesc
    </select>
</div>

然而,现在文本和输入字段之间没有填充,虽然我尝试设置margin-right

如何在它们之间添加一些填充?

【问题讨论】:

尝试将标签设置为具有style="margin-right: 10px; display: inline-block;" 或让选择具有style="margin-left: 10px; display: inline-block;" className 属性应为 class 【参考方案1】:

您只需将[style] 更改为"[style]"。我不确定你在用大括号做什么,因为我不懂 React.js(我认为这是 React.js 语法),但你可以简单地将样式放在引号中。

因此,下面一行:

<label style=display: 'margin-right:10px'>Category</label>

应该是:

<label style=marginRight: '10px'>Category</label>

请参阅 JSFiddle.net 上的工作示例 here(我夸大了 margin-right 只是为了显示差异)。

【讨论】:

双花括号确实是jsx语法;它基本上是 jsx“占位符”内的标准 js 对象。【参考方案2】:

@Jonathan 的回答会起作用,但这很可能不是您想要的。当您想要基于外部交互(例如服务器状态、用户输入等)操作样式时,让 React 为您处理样式可以提供更大的灵活性。

在您的示例中,您可能希望使用以下内容:

<div className="form-group form-inline">
    <label style=marginRight: '10px'>Category</label>
    <select className="form-control" value=this.state.selectCategoryValue onChange=this.handleSelectCat style=display:'inline-block'>
        <option value="defaultCategory" disabled selected></option>
        categoryDesc
    </select>
</div>

基本上你可以使用任何 css 样式,但你需要对属性进行驼峰命名。

React inline styles docs

然后在best practices 上进行一些进一步的讨论。

【讨论】:

以上是关于将标签和输入字段放在同一行,并带有填充的主要内容,如果未能解决你的问题,请参考以下文章

使用网格布局进行表单设计

如何在一行中添加两个文本输入字段

如何将文本和社交媒体图标放在同一行

期望脚本从文件中读取并将所有内容放在同一行

页面中将按钮和a标签放在同一行时,显示为两行。如何将它们放在同一行

在文本字段中输入不同的输入到swift中的标签