【问题标题】:Getting smaller size for text input field in django bootstrap在 django bootstrap 中获取更小的文本输入字段
【发布时间】:2016-05-08 04:50:21
【问题描述】:

我在表单中使用文本字段、单选按钮、文本区域等。文本字段非常小,看起来很糟糕:

我怎样才能稍微大一点?文本区域的高度如何小于性别字段的高度?

代码是:

<div class='form-group'>
                    <label class='control-label col-md-2 col-md-offset-2' for='id_name'>Name</label>
                    <div class='col-md-6'>

                        {% render_field form.name class="form-control" placeholder="Full Name" type="text" %}

                        {% if form.name.errors %}
                        <div class="alert alert-danger tpad">
                            {{ form.name.errors.as_text }}
                        </div>

                        {% endif %}


                    </div>
                </div>
                <!-- name ends here -->
                {# Gender goes here #}
                <div class='form-group'>

                <label class='control-label col-md-2 col-md-offset-2' for='id_name'>Gender</label>
                    <div class='col-md-6'>

                        {% for radio in form.gender %}
                        {{ radio }}
                        {% endfor %}    
                        {{form.gender.errors}}


                    </div>
                </div>



                <!-- enroll ment number -->
                <div class='form-group'>
                    <label class='control-label col-md-2 col-md-offset-2' for='id_enrollment_number'>Enrollment Number</label>
                    <div class='col-md-6'>


                        {% render_field form.enrollment_no class='form-control' placeholder='Enrollment Number' type='text' %}
                        {% if form.enrollment_no.errors %}
                        <div class="alert alert-danger tpad">
                            {{ form.enrollment_no.errors.as_text }}
                        </div>

                        {% endif %}

                    </div>
                </div>





                <div class='form-group'>
                    <label class='control-label col-md-2 col-md-offset-2' for='id_faculty_name'>Faculty Name</label>
                    <div class='col-md-6'>

                        {% render_field form.faculty_name   class='form-control' rows="1" cols="1" placeholder='Faculty Name' type='text' %}
                        {% if form.faculty_name.errors %}
                        <div class="alert alert-danger tpad">
                            {{ form.faculty_name.errors.as_text }}
                        </div>

                        {% endif %}
                    </div>
                </div>

生成的代码是:

<div class='form-group'>
                    <label class='control-label col-md-2 col-md-offset-2' for='id_name'>Name</label>
                    <div class='col-md-6'>

                        <input class="form-control" id="id_name" maxlength="200" name="name" placeholder="Full Name" type="text" />




                    </div>
                </div>
                <!-- name ends here -->

                <div class='form-group'>

                <label class='control-label col-md-2 col-md-offset-2' for='id_name'>Gender</label>
                    <div class='col-md-6'>


                        <select id="id_gender" name="gender">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
                    </div>
                </div>

解决方案:bootstrap 渲染的文字大小为 20px。我手动将其更改为 40px,这里:

.uneditable-input{display:inline-block;height:40px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,

【问题讨论】:

  • 哪个库负责提供render_field tempalte 标签?能否为最终生成的字段添加 HTML?
  • @AKS 抱歉迟到了。看看我的编辑。

标签: html css django twitter-bootstrap


【解决方案1】:

由于您的代码会为名称输入生成一个 id,因此在您的 CSS 中添加(或更新)此规则就可以解决问题

#id_name {
  height: 30px;       /*  where you give it same height as your select  */
}

另一种方式,更通用的表单元素(输入文本和选择),可能是这样的

form-control select,
form-control input[type=text] {
  height: 30px;
}

【讨论】:

  • @learner 您将form-control 类添加到您的输入文本而不是您的选择中,这可能是它们不同的原因,但由于我无法访问您的 CSS 或 HTML,所以我不能不确定
  • 它不工作。删除类 form-control 后,什么也没有发生。
  • @learner 也将form-control 添加到您的选择中,看看会发生什么,...如果没有,请使用我在回答中建议的类之一,如果您使用后者,则需要将form-control 类添加到您的选择中
  • 感谢您的帮助。 bootstrap 渲染的文本大小为 20px。我手动将其更改为 40px,这里: .uneditable-input{display:inline-block;height:40px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:# 555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}输入,textarea,现在工作正常。
【解决方案2】:

我认为您应该调整框的大小,例如:cols 或者您应该将其设置为 textarea。

例如盒子的那部分:

{% render_field form.name class="form-control"   cols="1" placeholder="Full Name" type="text" %}

【讨论】:

  • rows 属性只对textareas 有效,对inputs 无效。
  • Ок 这样@learner 可以将其作为文本区域或仅更改列
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
相关资源
最近更新 更多