bootstrap 网格中的输入高度
Height of inputs in bootstrap grids
我正在使用 Bootstrap 4,但我在处理表单中某些输入字段的高度时遇到了一些问题。表单布局基于 bootstrap 的网格。每个输入都与左侧的标签配对(除非屏幕太小,否则所有表单内容将垂直堆叠)。如果标签足够长,它会被分成多行,但如果发生这种情况,同一行上所有输入的高度都会增加。有一种方法可以用 bootstrap 类 来固定输入的高度吗?
备注:我知道如何用CSS修复,我想知道有没有办法只用Bootstrap
一个例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
</head>
<body>
<form>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input1">Label 1</label>
<div class="input-group col-sm-9">
<span class="input-group-addon">1</span>
<input type="text" class="form-control" id="input1">
</div>
</div>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input2">Label 2 is very long and could occupy more than 1 row</label>
<div class="input-group col-sm-9">
<span class="input-group-addon">2</span>
<input type="text" class="form-control" id="input2">
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>
</html>
在这种情况下,我希望 input2
具有与 input1
相同的高度。
只需从输入周围的列中删除 input-group
。
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input1">Label 1</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="input1">
</div>
</div>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input2">Label 2 is very long and could occupy more than 1 row</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="input2">
</div>
</div>
只需将 input-group
col-sm-*
div 拆分为嵌套的 div。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
</head>
<body>
<form>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input1">Label 1</label>
<div class="input-group col-sm-9">
<span class="input-group-addon">1</span>
<input type="text" class="form-control" id="input1">
</div>
</div>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input2">Label 2 is very long and could occupy more than 1 row</label>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon">2</span>
<input type="text" class="form-control" id="input2">
</div>
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>
</html>
额外
垂直对齐 div 和标签 类 align-items-*
for row
divs or align-self-*
for col
div 可以使用。
我正在使用 Bootstrap 4,但我在处理表单中某些输入字段的高度时遇到了一些问题。表单布局基于 bootstrap 的网格。每个输入都与左侧的标签配对(除非屏幕太小,否则所有表单内容将垂直堆叠)。如果标签足够长,它会被分成多行,但如果发生这种情况,同一行上所有输入的高度都会增加。有一种方法可以用 bootstrap 类 来固定输入的高度吗?
备注:我知道如何用CSS修复,我想知道有没有办法只用Bootstrap
一个例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
</head>
<body>
<form>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input1">Label 1</label>
<div class="input-group col-sm-9">
<span class="input-group-addon">1</span>
<input type="text" class="form-control" id="input1">
</div>
</div>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input2">Label 2 is very long and could occupy more than 1 row</label>
<div class="input-group col-sm-9">
<span class="input-group-addon">2</span>
<input type="text" class="form-control" id="input2">
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>
</html>
在这种情况下,我希望 input2
具有与 input1
相同的高度。
只需从输入周围的列中删除 input-group
。
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input1">Label 1</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="input1">
</div>
</div>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input2">Label 2 is very long and could occupy more than 1 row</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="input2">
</div>
</div>
只需将 input-group
col-sm-*
div 拆分为嵌套的 div。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
</head>
<body>
<form>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input1">Label 1</label>
<div class="input-group col-sm-9">
<span class="input-group-addon">1</span>
<input type="text" class="form-control" id="input1">
</div>
</div>
<div class="form-group row">
<label class="col-form-label col-sm-3" for="input2">Label 2 is very long and could occupy more than 1 row</label>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon">2</span>
<input type="text" class="form-control" id="input2">
</div>
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>
</html>
额外
垂直对齐 div 和标签 类 align-items-*
for row
divs or align-self-*
for col
div 可以使用。