有一个关于这个的github问题。
全屏宽度
您应该使用该alignText
属性来对齐文本和图标。前任 :
<Select className="fullwidth" items={['toto', 'tata']} filterable={false} itemRenderer={renderSelectItem} onItemSelect={this.onCategoryChange.bind(this)} >
<Button text={this.state.category} alignText="left" fill="{true}" rightIcon="caret-down" />
</Select>
您必须添加自定义 CSS 规则以使选择全宽:
.bp3-popover-wrapper.fullwidth, .bp3-popover-wrapper.fullwidth > .bp3-popover-target {
display:block;
}
但是,如果单击选择,列表将不会全宽显示。如果您有一个基本用例,您可能希望使用HTMLSelect而不是Select,当“填充”为真时,它具有所需的默认行为。
固定宽度
如果要使选择和列表固定宽度,您有 2 个解决方案:
<Select className="fullwidth" popoverProps={{ portalClassName:"fullwidth" }} items={['toto', 'tata']} filterable={false} itemRenderer={renderSelectItem} onItemSelect={this.onCategoryChange.bind(this)} >
<Button text={this.state.category} alignText="left" fill="{true}" rightIcon="caret-down" />
</Select>
<Select className="fullwidth" popoverProps={{ usePortal: false }} items={['toto', 'tata']} filterable={false} itemRenderer={renderSelectItem} onItemSelect={this.onCategoryChange.bind(this)} >
<Button text={this.state.category} alignText="left" fill="{true}" rightIcon="caret-down" />
</Select>
.bp3-popover-wrapper.fullwidth, .bp3-popover-wrapper.fullwidth > .bp3-popover-target {
display:block;
max-width: 500px;
}
/* with portal */
.bp3-overlay.fullwidth .bp3-select-popover {
width: 500px;
}
/* without portal */
.bp3-popover-wrapper.fullwidth .bp3-select-popover {
width: 500px;
}