如何让输入无线电元素在react [material-ui]中水平对齐?

jay*_*y.m 17 css reactjs material-ui

无线电组始终在材料-ui中列出.有没有办法水平对齐它们?例如,一条水平线上的所有单选按钮.

Hyd*_*ack 24

只需使用该row属性:

<RadioGroup row><Radio /><Radio /></RadioGroup>
Run Code Online (Sandbox Code Playgroud)

RadioGroup继承自FormGroup,因此FormGroup组件的属性也可用.

  • 当前选择的答案有效并且确实收到了我的upvote.但是,我认为这应该是选择答案,因为它更好地与材料UI文档对齐如何从一组子表单输入中水平对齐(从中创建一行). (3认同)

lam*_*ris 23

要连续渲染单选按钮:

<RadioButtonGroup style={{ display: 'flex' }}>
Run Code Online (Sandbox Code Playgroud)

根据内容重置大小:

<RadioButton style={{ width: 'auto' }} />
Run Code Online (Sandbox Code Playgroud)

  • 如果您的单选按钮包装在FormControlLabel中,则不起作用。另一方面,@ HydraHatRack解决方案确实有效。 (2认同)

NuO*_*One 9

只需在 RadioGroup 控件上添加道具row={true} 即可

 <RadioGroup
      aria-label="Location"
      name="location"
      className={classes.group}
      value={location}
      onChange={handleChange}
      row={true}
      >
         <FormControlLabel value="company" control={<Radio />} label="Company" />
         <FormControlLabel value="home" control={<Radio />} label="Home" />
         <FormControlLabel value="other" control={<Radio />} label="Other" />
 </RadioGroup>
Run Code Online (Sandbox Code Playgroud)

  • 这与我上面的回答基本相同。&lt;RadioGroup row /&gt; 只是使用 JSX 速记来表示布尔道具。 (2认同)

Bor*_*rzh 6

对于那些仍在挣扎中的人,请使用这种风格:

const styles = theme => ({
    group: {
        width: 'auto',
        height: 'auto',
        display: 'flex',
        flexWrap: 'nowrap',
        flexDirection: 'row',
    }
});

class MyComponent extends React.Component {

    render() {
        const { classes } = this.props;

        <RadioGroup className={classes.group} ...>
    }

};

export default withStyles(styles)(MyComponent);
Run Code Online (Sandbox Code Playgroud)