javascript - react-bootstrap 中 FormControl 和 ControlLabel 之间的高度不同

标签 javascript reactjs twitter-bootstrap react-bootstrap

我正在做一个标签+表格如下:

<Form horizontal>
  <FormGroup>
    <Col xs={5} className="xxx">
      <ControlLabel>
        somekey:
      </ControlLabel>
    </Col>
    <Col xs={7} className="yyy">
      <InputGroup>
        <FormControl value="v"/>
        <InputGroup.Button>
          <Button>
            km
          </Button>
        </InputGroup.Button>
      </InputGroup>
    </Col>
  </FormGroup>
</Form>

但是,在我添加了 background-color 之后,ControlLabel 部分的高度似乎与 InputGroup 部分不同如附图所示。我做错了什么吗?

enter image description here

最佳答案

我不认为你在做什么,这就是 bootstrap 的工作方式,

React bootstrap 使用版本 bootstrap v3,

我已经使用纯 HTML、CSS 和 bootstrap v3 CSS 复制了您的代码示例。

以全屏模式打开代码段

在下面的示例中,您可以看到,绿色背景色指示的标签下方有一些空间

Horizontal forms should never be used on small devices. i.e. You should use sm instead of xs so that on small screen it becomes vertical form for good UX.

.column-color {
  background-color: red;
}

.form-group-color {
  background-color: green;
}

.form-horizontal.centered .control-label {
  margin: 0;
  padding: 0;
  vertical-align: middle;
  line-height: 34px;
}

.centered-flex {
  display: flex;
}

.centered-flex .control-label {
  display: block;
  flex: 1;
  width: 140px;
  padding-right: 10px;
}

.centered-flex .input-group {
  flex: 5;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<form class="form-horizontal">
  <div class="form-group form-group-color">
    <div class="col-xs-2 text-right  column-color">
      <label for="inputEmail3" class="control-label ">Email</label>
    </div>
    <div class="col-xs-10">
      <div class="input-group">
        <input type="text" class="form-control" placeholder="Test" aria-describedby="basic-addon2">
        <span class="input-group-addon" id="basic-addon2">km</span>
      </div>
    </div>
  </div>
</form>
<br/>
<p>Horizontal forms should never be used on small devices. i.e. You should use sm instead of xs, so that on small screen it becomes vertical form</p>
<form class="form-horizontal ">
  <div class="form-group form-group-color">
    <div class=" col-sm-2 text-right  column-color">
      <label for="inputEmail3" class="control-label ">Email</label>
    </div>
    <div class="col-sm-10">
      <div class="input-group">
        <input type="text" class="form-control" placeholder="Test" aria-describedby="basic-addon2">
        <span class="input-group-addon" id="basic-addon2">km</span>
      </div>
    </div>
  </div>
</form>

<br/>
<p>Vertically Centered using line-height method</p>
<form class="form-horizontal centered">
  <div class="form-group form-group-color">
    <div class=" col-sm-2 text-right  column-color">
      <label for="inputEmail3" class="control-label ">Email</label>
    </div>
    <div class="col-sm-10">
      <div class="input-group">
        <input type="text" class="form-control" placeholder="Test" aria-describedby="basic-addon2">
        <span class="input-group-addon" id="basic-addon2">km</span>
      </div>
    </div>
  </div>
</form>

<p>Centered using flex</p>
<form class="form-horizontal ">
  <div class="form-group form-group-color centered-flex">

    <label for="inputEmail3" class="control-label column-color">Email</label>


    <div class="input-group">
      <input type="text" class="form-control" placeholder="Test" aria-describedby="basic-addon2">
      <span class="input-group-addon" id="basic-addon2">km</span>
    </div>

  </div>
</form>

关于javascript - react-bootstrap 中 FormControl 和 ControlLabel 之间的高度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51777263/

相关文章:

javascript - 我无法从 draft-js 获得 html 输出?

javascript - 根据路线类型解析 Google Maps Geocoder JSON 结果

JavaScript 检测有效日期

javascript - 找不到入口模块 : Error: Can't resolve './src/index.js'

html - CSS:不需要 div 额外边距

css - Bootstrap 3 列具有等高子 Div

html - 更改 Bootstrap 模式的默认宽度

javascript - 如何禁用 Bootstraps 按钮复选框悬停和焦点效果?

javascript - 如何从angular2中输入的文本动态设置超链接并使其可通过url点击?

javascript - 如何在基于类的组件中使用 React.forwardRef?