【发布时间】:2018-01-04 02:51:58
【问题描述】:
使用 styled-components 和内联样式,我无法移除 material-ui 的 TextField 组件周围的填充。有任何想法吗?但该内联宽度有效(样式组件宽度不起作用)。
例子:
代码:
const StyledSelect = styled(SelectField)`
margin:0;
input {
margin:0;
}
`;
const StyledText = styled(TextField) `
margin:0;
input {
margin:0;
}
`;
return (
<div>
<StyledText
type="number"
floatingLabelText={this.props.title}
onChange={this.handleAmtChange}
value={this.state.amount}
style={{ width: '100px', margin: '0px', input: { margin: 0 } }}
min={0}
/>
<StyledSelect
floatingLabelText="Unit"
onChange={this.handleUnitChange}
value={this.state.unit}
style={{ width: '100px', margin: '0px' }}
>
<MenuItem
value={0}
primaryText={"In"}
/>
</StyledSelect>
</div>
);
更新
我最初使用的是material-ui 0.X,但更新为1.0.0-beta.26。问题稍微好一点,但仍然非常明显。有什么想法吗?
【问题讨论】:
-
你在 SelectField 和 TextField 组件中传递了 className 吗?请参阅此处:styled-components.com/docs/basics#styling-any-components 否则,保证金将永远不会传递给您的组件。
-
这些组件是material-ui做的,相信是把class name属性传下来
-
他们实际上是这样做的:github.com/mui-org/material-ui/blob/v1-beta/src/TextField/… 但我认为问题可能是,内部组件通过“...ClassName”作为类名传递。所以我确实认为,您的样式化组件仅对 MaterialUI 的 FormComponent 进行样式设置,而不是其中的元素。这可能是原因吗?尝试使用边框填充以查看确切的影响。
-
什么版本的 Material-UI?
-
你试过
<div className={"some-global-class ${this.props.className}"} />;吗?根据文档,这应该结合类styled-components.com/docs/advanced#existing-css
标签: css reactjs input material-ui styled-components