如何更改登录表单中 html 文本的颜色? (WT表格)

How do I change the color of html text in my login form? (WTForms)

这是我的 html 文件,我在其中呈现我的烧瓶应用程序的模板:

{% extends "layout.html" %}

{% block app_content %}
    <div>
        {% from "_formhelpers.html" import render_field %}
        <div class = "container">
            <div class = "row">
                <div class = "col-md-5"></div>
                <div class = "col-md-12"></div>
                <div class = "col-md-5 col-sm-12 align-self-center">
                    <div class = "card">
                        <div class = "card-header">
                            LOG-IN
                        </div>
                        <div class = "card-body">
                            <div>
                                {{ form.hidden_tag() }}
                                {{ render_field(form.email, class = "form-control") }}
                                {{ render_field(form.password, class = "form-control") }}
                                {{ render_field(form.remember_me, class = "form-control") }}
                                {{ render_field(form.submit, class = "btn btn-primary") }}
                            </div>
                            <p>Don't have an account? <a href = "{{ url_for('auth.register') }}">Sign-Up</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

{% endblock app_content %}

python 我放置属性的文件:

from flask_wtf import FlaskForm
from wtforms import StringField, BooleanField, IntegerField, PasswordField, SubmitField, TextAreaField
from wtforms.validators import DataRequired, length, email, EqualTo

class RegisterForm(FlaskForm):
    fname = StringField("First Name", validators = [DataRequired(), length(min = 2, max = 20)])
    lname = StringField("Last Name", validators = [DataRequired(), length(min = 2, max = 20)])
    email = StringField("Email", validators = [DataRequired(), email()])
    password = PasswordField("Password", validators = [DataRequired()])
    phoneno = StringField("Phone Number", validators=[DataRequired()])
    confirm_password = PasswordField("Password", validators = [DataRequired(), EqualTo("password")])
    submit = SubmitField("Signup")

class LoginForm(FlaskForm):
    email = StringField("Email", validators = [DataRequired(), email()])
    password = PasswordField("Password", validators = [DataRequired()])
    remember_me = BooleanField("Remember Me")
    submit = SubmitField("Login")

所以我的问题是,表单已成功创建,并且用户输入电子邮件、phone 号码等的输入区域很好,每个输入区域的标题都在其顶部,例如电子邮件输入栏将有“'email' 写在上面”。但是,它是黑色的,我希望它是白色的,因为我的背景是黑色的。

我对如何引用这些位于输入区域顶部的文本感到困惑,因为我使用的是 WTForms,正如您所见,它们实际上并不在 class 或其他任何地方。我在我的 html 中有一个样式部分,我在其中进行样式设置,例如,我通过添加 '.form-control' 等来引用表单本身,但这不会影响文本。 我如何在我的样式部分引用此文本,或者我应该使用任何其他方式?

选项 1

您可以为 parent div 创建一个 class,然后在您的 CSS 文件中,为 class 指定一种颜色。这将使表单标签像给定颜色的“电子邮件”一样,但也会使表单输入文本(用户输入的内容)具有相同的颜色。例如:

<div class = "login-form">
  {{ form.hidden_tag() }}
  {{ render_field(form.email, class = "form-control") }}
  {{ render_field(form.password, class = "form-control") }}
  {{ render_field(form.remember_me, class = "form-control") }}
  {{ render_field(form.submit, class = "btn btn-primary") }}
</div>

CSS:

div.login-form {
  color: white;
}

选项 2

编辑“_formhelpers.html”模板并为每个标签分配不同的 class 属性值,然后为这些特定的 class 分配颜色。例如:

编辑“_formhelpers.html”文件

{% macro render_field(field) %}
  <div  class="form-label-example">
    <dt>{{ field.label }}
  </div>
  <div class="form-field-example">
    <dd>{{ field(**kwargs)|safe }}
      {% if field.errors %}
        <ul class=errors>
          {% for error in field.errors %}
            <li>{{ error }}</li>
          {% endfor %}
        </ul>
      {% endif %}
    </dd>
  </div>
{% endmacro %}

编辑CSS

div.form-label-example {
  color: white;
}

div.form-field-example {
  color: black;
}

请注意,您现有的“form-control”标签正在使用 bootstrap(如果它已导入到您的文件中),因此将覆盖表单字段输入文本的自定义颜色,但是标题标签仍将具有您在 CSS.

中指定的自定义颜色