首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-bootstrap复选框在列中居中

问React-bootstrap复选框在列中居中
EN

Stack Overflow用户
提问于 2018-02-28 02:31:09
回答 2查看 5.4K关注 0票数 2

我有一个带有ListGroupItems的ListGroup,它由一些数据填充。数据的一部分是描述,它的长度显然是不同的。

代码语言:javascript
复制
<ListGroup className="signal-info-container">
  {
    signalConstants[this.props.signalType].map((signal, i) => (
      <ListGroupItem key={i}>
        <Row>
          <Col xs={3}>
            {signal.name}
          </Col>
          <Col xs={5}>
            {signal.description}
          </Col>
          <Col xs={3} className="aggregation">
            <Checkbox inline={true}></Checkbox>
            <Checkbox inline={true}></Checkbox>
            <Checkbox inline={true}></Checkbox>
            <Checkbox inline={true}></Checkbox>
          </Col>
        </Row>
      </ListGroupItem>
    ))
  }
</ListGroup>

有时,该描述需要换行(如下所示)。

​

​

我希望发生的是,右列中的复选框垂直对齐到列的中心。

我试着用一些自定义的css覆盖react-bootstrap。上图中的css结果如下所示。

代码语言:javascript
复制
.aggregation {
  display: flex;
  align-items: center;
}

不确定它有多相关,但是列的高度是0px。让我困惑的是为什么单行描述居中,而多行描述不居中。下面是0px协议的图像:

​

​

我已经注意到,似乎有某种类型的标签应用于复选框,它由应用的CSS居中,但我需要将其应用于实际的复选框。我刚刚从我的复选框中删除了title属性。效果仍然是一样的(标签无论如何都不会出现)。

EN

回答 2

Stack Overflow用户

发布于 2018-02-28 03:07:17

您需要对整个<tr>应用display: flex; align-items: center;,这样它才能识别多行描述。因此,您应该向使用这些规则的<Row>添加一个类。

票数 2
EN

Stack Overflow用户

发布于 2018-02-28 03:17:32

尝试修改组件,如下所示:

代码语言:javascript
复制
<ListGroup className="signal-info-container">
  {
    signalConstants[this.props.signalType].map((signal, i) => (
      <ListGroupItem key={i}>
        <Row>
          <Col xs={3}>
            {signal.name}
          </Col>
          <Col xs={5}>
            {signal.description}
          </Col>
          <Col xs={3}>
            <CheckboxRow>
              <Checkbox title='min' inline={true}></Checkbox>
              <Checkbox title='max' inline={true}></Checkbox>
              <Checkbox title='avg' inline={true}></Checkbox>
              <Checkbox title='sum' inline={true}></Checkbox>
            </CheckboxRow>
          </Col>
        </Row>
      </ListGroupItem>
    ))
  }
</ListGroup>

CheckboxRow在哪里

代码语言:javascript
复制
const CheckboxRow = ({children}) => (
  <div style={
    "display": "flex",
    "justify-content": "center",
    "align-items": "center"
  }>
    {children}
  </div>
)

或者将该CSS提取到样式表中。

添加额外的div层的原因是,它比试图覆盖列组件上的样式更安全,因为它的目的不是水平放置元素。

“justify-content:center”将项目水平居中,“align- items :center”将项目垂直居中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49015595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档