[英]How to put button right next to input box using bootstrap columns/grid system?
鉴于我正在使用引导列/网格系统,我如何能够在输入框旁边放置一个按钮? Label
为 2, EditorFor
div 为 4, input
div 为 6。如果我将EditorFor
div 降低到 3,它会使input/button
div 靠近,但它会缩小EditorFor
的宽度
style style = "border: 1px solid red;"
只是为了调试。
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(model => model.Tag.Name, htmlAttributes: new { @class = "control-label col-md-2", style = "border: 1px solid red;" })
<div class="col-md-4" style = "border: 1px solid red;">
@Html.EditorFor(model => model.Tag.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Tag.Name, "", new { @class = "text-danger" })
</div>
<div class="col-md-6" style = "border: 1px solid red;">
<input type="submit" value="Add Tag" class="btn btn-default" style = "border: 1px solid red;"/>
</div>
</div>
</div>
谢谢
这是 html 输出:
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-md-2" for="Tag_Name" style="border: 1px solid red;">Tag Name:</label>
<div class="col-md-4" style = "border: 1px solid red;">
<input class="form-control text-box single-line" data-val="true" data-val-length="Tag cannot be longer than 50 characters." data-val-length-max="50" data-val-regex="Must start with a capital letter, only alphabetic characters and no spaces allowed." data-val-regex-pattern="^[A-Z]+[a-zA-Z"'\s-]*$" data-val-required="The Tag Name: field is required." id="Tag_Name" name="Tag.Name" type="text" value="" />
<span class="field-validation-valid text-danger" data-valmsg-for="Tag.Name" data-valmsg-replace="true"></span>
</div>
<div class="col-md-6" style = "border: 1px solid red;">
<input type="submit" value="Add Tag" class="btn btn-default" style = "border: 1px solid red;"/>
</div>
</div>
</div>
使用输入组将按钮放在输入框旁边。
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" rel="stylesheet" /> <div class="form-horizontal"> <div class="form-group"> <label class="control-label col-md-2" for="Tag_Name" style="border: 1px solid red;">Tag Name:</label> <div class="col-md-4" style="border: 1px solid red;"> <div class="input-group"> <input class="form-control text-box single-line" data-val="true" data-val-length="Tag cannot be longer than 50 characters." data-val-length-max="50" data-val-regex="Must start with a capital letter, only alphabetic characters and no spaces allowed." data-val-regex-pattern="^[AZ]+[a-zA-Z"'\\s-]*$" data-val-required="The Tag Name: field is required." id="Tag_Name" name="Tag.Name" type="text" value="" /> <span class="field-validation-valid text-danger" data-valmsg-for="Tag.Name" data-valmsg-replace="true"></span> <div class="input-group-append"> <input type="submit" value="Add Tag" class="btn btn-default" style="border: 1px solid red;" /> </div> </div> </div> </div> </div>
问题是@Html.EditorFor
有一个最大宽度。 这意味着它永远不会达到col-md-4
或更高的宽度。 所以我要么需要增加@Html.EditorFor
的最大宽度来填充col-md-4
,要么使用col-md-3
使按钮更接近输入。
由于引导程序的列/网格系统填充,使用col-md-3
会导致EditorFor
的宽度缩小(相对于进行EditorFor
)的问题。
在这种情况下,删除padding-right
/ 将其设置为0
会删除此间隙,从而使EditorFor
现在填充 col 的右侧。
最终代码:
<div class="form-group">
@Html.LabelFor(model => model.Tag.Name, htmlAttributes: new { @class = "control-label col-md-2", style = "border: 1px solid red;" })
<div class="col-md-3" style="border: 1px solid red; padding-right:0;">
@Html.EditorFor(model => model.Tag.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Tag.Name, "", new { @class = "text-danger" })
</div>
<div class="col-md-7" style="border: 1px solid red;">
<input type="submit" value="Add Tag" class="btn btn-default" style="border: 1px solid red;" />
</div>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.