【问题标题】:Positions of labels appearing at top instead of left标签的位置出现在顶部而不是左侧
【发布时间】:2017-10-20 11:42:23
【问题描述】:

我正在使用 bootstrap 使用 adminlte 主题来设置我的管理员的样式

<div class="col-md-10">
        <div class="nav-tabs-custom">
            <ul class="nav nav-tabs">
                <li class="active"><a href="#activity" data-toggle="tab">Prodct Info</a></li>
                <li><a href="#images" data-toggle="tab">Product Images</a></li>
                <li><a href="#seo" data-toggle="tab">Seo</a></li>
                <li><a href="#settings" data-toggle="tab">Settings</a></li>
            </ul>
            <div class="tab-content">
                <div class="active tab-pane" id="activity">
                    <form asp-controller="Products" asp-action="Create" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal" role="form">

                        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                        <div class="form-group">
                            <label asp-for="ProductName" class="control-label">Product Name</label>
                            <input asp-for="ProductName" class="form-control" />
                            <span asp-validation-for="ProductName" class="text-danger"></span>
                        </div>
                        <div class="form-group">
                            <label asp-for="LongDescription" class="control-label"></label>


                            <textarea id="editor1" name="editor1" rows="10" cols="80">
                                        This is my textarea to be replaced with CKEditor.
                </textarea>

                        </div>
                        <div class="form-group ">
                            <label asp-for="OldPrice" class="control-label"> Old Price</label>
                            <input asp-for="OldPrice" class="form-control" />
                            <span asp-validation-for="OldPrice"  class="text-danger"></span>
                        </div>
                        <div class="form-group">
                            <label asp-for="NewPrice" class="control-label">Price</label>
                            <input asp-for="NewPrice" class="form-control" />
                            <span asp-validation-for="NewPrice" class="text-danger"></span>
                        </div>
                        <div class="form-group">
                            <label asp-for="SKU" class="control-label">Sku (Product No)</label>
                            <input asp-for="SKU" class="form-control" />
                            <span asp-validation-for="SKU" class="text-danger"></span>
                        </div>

                </div>

这给了我一个这样的布局但我希望控件的标签在左边,填充相等

这就是我想要达到的目标,没有人能做到。

【问题讨论】:

    标签: css asp.net twitter-bootstrap


    【解决方案1】:

    您已将form-horizontal 类添加到&lt;form&gt;,但我认为您还需要添加网格列类来定义每个标签和输入的宽度。

    例如,将col-sm-2类添加到&lt;label&gt;,然后将inputspan包裹在里面

    <div class="col-sm-10">
    
    </div>
    

    如果视口 col-sm-* 将导致标签和输入堆叠。如果您希望它们始终保持水平,请使用col-xs-*

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
    
    <!--Stacked if width < 768px -->
    <form class="form-horizontal">
      <div class="form-group">
        <label asp-for="OldPrice" class="col-sm-2 control-label">Old Price</label>
        <div class="col-sm-10">
          <input asp-for="OldPrice" class="form-control" />
          <span asp-validation-for="OldPrice" class="text-danger"></span>
        </div>
      </div>
    </form>
    
    <!-- Never stacked -->
    <form class="form-horizontal">
      <div class="form-group">
        <label asp-for="OldPrice" class="col-xs-2 control-label">Old Price</label>
        <div class="col-xs-10">
          <input asp-for="OldPrice" class="form-control" />
          <span asp-validation-for="OldPrice" class="text-danger"></span>
        </div>
      </div>
    </form>

    来源:https://getbootstrap.com/docs/3.3/css/#forms-horizontal

    【讨论】:

    • 这些盒子周围似乎有另一个面板,如何实现呢?当我运行代码 sn-p 时,它没有对齐控件?这在堆栈之外可以正常工作吗
    • 是的,我总是使用col-sm-*,所以它会在移动设备上堆叠,因为使用col-xs-* 时标签并没有完全对齐。如果您点击“整页”,您会看得更清楚。
    • 它们的盒子周围似乎有另一个面板,如何实现? 你是什么意思?哪些盒子有面板?
    • 对不起,我不清楚你看到控件周围的一般信息框是另一个元素吗?。
    【解决方案2】:

    按照Bootstrap's documentation 对每个表单组使用表单内联类。您的代码中的一个示例是:

    <div class="form-group form-inline">
        <label asp-for="OldPrice" class="control-label"> Old Price</label>
        <input asp-for="OldPrice" class="form-control" />
        <span asp-validation-for="OldPrice"  class="text-danger"></span>
    </div>

    编辑:我错过了你想要等间距的部分。在那种情况下,帕特里克奥格雷迪的回答应该有效。但是,您在关闭表单之前已经关闭了外部 div 标记。以下是您提供的带有适当标签和闭包的完整代码:

    		<div class="col-md-10">
    			<div class="nav-tabs-custom">
    				<ul class="nav nav-tabs">
    					<li class="active"><a href="#activity" data-toggle="tab">Prodct Info</a></li>
    					<li><a href="#images" data-toggle="tab">Product Images</a></li>
    					<li><a href="#seo" data-toggle="tab">Seo</a></li>
    					<li><a href="#settings" data-toggle="tab">Settings</a></li>
    				</ul>
    				<div class="tab-content">
    					<div class="active tab-pane" id="activity">
    						<form asp-controller="Products" asp-action="Create" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal" role="form">
    							<div asp-validation-summary="ModelOnly" class="text-danger"></div>
    							<div class="form-group">
    								<label asp-for="ProductName" class="control-label col-sm-2">Product Name</label>
    								<div class="col-sm-10">
    									<input asp-for="ProductName" class="form-control" />
    									<span asp-validation-for="ProductName" class="text-danger"></span>
    								</div>
    							</div>
    							<div class="form-group">
    								<label asp-for="LongDescription" class="control-label col-sm-2"></label>
    								<div class="col-sm-10">
    									<textarea id="editor1" name="editor1" rows="10" cols="80">This is my textarea to be replaced with CKEditor.</textarea>
    								</div>
    							</div>
    							<div class="form-group ">
    								<label asp-for="OldPrice" class="control-label col-sm-2"> Old Price</label>
    								<div class="col-sm-10">
    									<input asp-for="OldPrice" class="form-control" />
    									<span asp-validation-for="OldPrice"  class="text-danger"></span>
    								</div>
    							</div>
    							<div class="form-group">
    								<label asp-for="NewPrice" class="control-label col-sm-2">Price</label>
    								<div class="col-sm-10">
    									<input asp-for="NewPrice" class="form-control" />
    									<span asp-validation-for="NewPrice" class="text-danger"></span>
    								</div>
    							</div>
    							<div class="form-group">
    								<label asp-for="SKU" class="control-label col-sm-2">Sku (Product No)</label>
    								<div class="col-sm-10">
    									<input asp-for="SKU" class="form-control" />
    									<span asp-validation-for="SKU" class="text-danger"></span>
    								</div>
    							</div>
    						</form>
    					</div>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多