【问题标题】:Change color of underline input and label in Materialize.css framework在 Materialize.css 框架中更改下划线输入和标签的颜色
【发布时间】:2016-05-09 23:41:47
【问题描述】:

我正在使用 Materialize.css 框架,我注意到文本 input 字段的颜色为绿色,label 也是。

有没有办法将颜色更改为不同的颜色?

<input type="text" id="username" />
<label for="username">Username</label>

【问题讨论】:

    标签: css html materialize


    【解决方案1】:

    您可以根据Materialize Docs 使用:

     /* label focus color */
       .input-field input[type=text]:focus + label {
         color: #000;
    }
    /* label underline focus color */
       .input-field input[type=text]:focus {
         border-bottom: 1px solid #000;
         box-shadow: 0 1px 0 0 #000;
       }
    

    片段

    /*** !important was needed for snippet ***/
    
    
    
    /* label focus color */
     .input-field input:focus + label {
       color: red !important;
     }
     /* label underline focus color */
     .row .input-field input:focus {
       border-bottom: 1px solid red !important;
       box-shadow: 0 1px 0 0 red !important
     }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css" rel="stylesheet" />
    <link rel="stylesheet" href="http://fonts.googleapis.com/icon?family=Material+Icons">
    <div class="row">
      <form class="col s12">
        <div class="row">
          <div class="input-field col s6">
            <i class="material-icons prefix">account_circle</i>
            <input id="icon_prefix" type="text" class="validate">
            <label for="icon_prefix">First Name</label>
          </div>
          <div class="input-field col s6">
            <i class="material-icons prefix">phone</i>
            <input id="icon_telephone" type="tel" class="validate">
            <label for="icon_telephone">Telephone</label>
          </div>
        </div>
      </form>
    </div>

    【讨论】:

    • Material Css 没有提到使用!important;他们错了吗?
    • 读取第一行的sn -p /*** !important was needed for snippet ***/
    【解决方案2】:

    dippas 的答案是正确的,但是如果您希望 textareas 具有相同的颜色,则必须设置以下 CSS 规则:

    /* label focus color */
        .input-field input[type=text]:focus + label, .materialize-textarea:focus:not([readonly]) + label {
         color: #005eed !important;
        }
    
    /* label underline focus color */
        .input-field input[type=text]:focus, .materialize-textarea:focus:not([readonly]) {
         border-bottom: 1px solid #005eed !important;
         box-shadow: 0 1px 0 0 #005eed !important;
        }
    

    注意标签和边框底部的 .materialize-textarea 规则。

    【讨论】:

    • 这是一个有用的补充答案。
    【解决方案3】:

    如果有人在 2019 年在这里尝试使用新版本的 Materialize (1.0.0)并且不想使用 !在他们的css中很重要,下面的sn-p对我有用。

    注意:这将适用于所有输入字段,如果您需要特定的输入字段,即文本,则将 [type] 更改为 [type=text]。

        /* Inactive/Active Default input field color */
        .input-field input[type]:not([readonly]),
        .input-field input[type]:focus:not([readonly]),
        .input-field textarea:not([readonly]),
        .input-field textarea:focus:not([readonly]) {
            border-bottom: 1px solid #01579b;
            box-shadow: 0 1px 0 0 #01579b;
        }
    
        /* Inactive/Active Default input label color */
        .input-field input[type]:focus:not([readonly])+label,
        .input-field textarea:focus:not([readonly])+label {
            color: #01579b;
        }
    
        /* Active/Inactive Invalid input field colors */
        .input-field input[type].invalid,
        .input-field input[type].invalid:focus,
        .input-field textarea.invalid,
        .input-field textarea.invalid:focus {
            border-bottom: 1px solid #e57373;
            box-shadow: 0 1px 0 0 #e57373;
        }
    
        /* Active/Inactive Invalid input label color */
        .input-field input[type].invalid:focus+label,
        .input-field input[type].invalid~.helper-text::after,
        .input-field input[type].invalid:focus~.helper-text::after, 
        .input-field textarea.invalid:focus+label,
        .input-field textarea.invalid~.helper-text::after,
        .input-field textarea.invalid:focus~.helper-text::after {
            color: #e57373;
        }
    
        /* Active/Inactive Valid input field color */
        .input-field input[type].valid,
        .input-field input[type].valid:focus,
        .input-field textarea.valid,
        .input-field textarea.valid:focus {
            border-bottom: 1px solid #26a69a;
            box-shadow: 0 1px 0 0 #26a69a;
        }
    
        /* Active/Inactive Valid input label color */
        .input-field input[type].valid:focus+label,
        .input-field input[type].valid~.helper-text::after,
        .input-field input[type].valid:focus~.helper-text::after,
        .input-field textarea.valid:focus+label,
        .input-field textarea.valid~.helper-text::after,
        .input-field textarea.valid:focus~.helper-text::after {
            color: #26a69a;
        }
    

    片段

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
      <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
      <style type="text/css">
        .input-field input[type]:not([readonly]),
        .input-field input[type]:focus:not([readonly]),
        .input-field textarea:not([readonly]),
        .input-field textarea:focus:not([readonly]) {
          border-bottom: 1px solid #01579b;
          box-shadow: 0 1px 0 0 #01579b;
        }
        
        .input-field input[type]:focus:not([readonly])+label,
        .input-field textarea:focus:not([readonly])+label {
          color: #01579b;
        }
    
        .input-field input[type].invalid,
        .input-field input[type].invalid:focus,
        .input-field textarea.invalid,
        .input-field textarea.invalid:focus {
          border-bottom: 1px solid #e57373;
          box-shadow: 0 1px 0 0 #e57373;
        }
        
        .input-field input[type].invalid:focus+label,
        .input-field input[type].invalid~.helper-text::after,
        .input-field input[type].invalid:focus~.helper-text::after, 
        .input-field textarea.invalid:focus+label,
        .input-field textarea.invalid~.helper-text::after,
        .input-field textarea.invalid:focus~.helper-text::after {
          color: #e57373;
        }
    
        .input-field input[type].valid,
        .input-field input[type].valid:focus,
        .input-field textarea.valid,
        .input-field textarea.valid:focus {
          border-bottom: 1px solid #26a69a;
          box-shadow: 0 1px 0 0 #26a69a;
        }
        
        .input-field input[type].valid:focus+label,
        .input-field input[type].valid~.helper-text::after,
        .input-field input[type].valid:focus~.helper-text::after,
        .input-field textarea.valid:focus+label,
        .input-field textarea.valid~.helper-text::after,
        .input-field textarea.valid:focus~.helper-text::after {
          color: #26a69a;
        }
      </style>
    </head>
    
    <body>
      <div class="input-field">
        <input id="email" name="email" type="email" class="validate" required="required" autofocus>
        <label for="email">Email</label>
        <span class="helper-text" data-error="Must be a valid email" data-success="Perfect!"></span>
      </div>
      </div>
      <div class="row">
        <div class="input-field">
          <input id="password" name="password" type="password"class="validate"  required="required" minlength="6">
          <label for="password">Password</label>
          <span class="helper-text" data-error="Must have 6 or more characters" data-success="Perfect!"></span>
        </div>
      </div>
      <div class="row">
        <div class="input-field">
          <textarea id="textarea" name="textarea" class="materialize-textarea validate" required="required" minlength="6"></textarea>
          <label for="textarea">Textarea</label>
          <span class="helper-text" data-error="Must have 6 or more characters" data-success="Perfect!"></span>
        </div>
      </div>
    </body>

    【讨论】:

      【解决方案4】:

      终于,我找到了解决方案。您需要更改活动和不活动的颜色。

      图标:

      .material-icons{
        color: #1a237e !important;
        }
      
      .material-icons.active {
        color: #b71c1c !important;
        }
      

      文本字段:

      .input-field input[type=text] + label, .materialize-textarea:focus:not([readonly]) + label {
       color: #1a237e !important;
      }
      
      .input-field input[type=text], .materialize-textarea:focus:not([readonly]) {
       border-bottom: 1px solid #1a237e !important;
       box-shadow: 0 1px 0 0 #1a237e !important;
      }
      
      
      .input-field input[type=text]:focus + label, .materialize-textarea:focus:not([readonly]) + label {
       color: #b71c1c !important;
      }
      
      .input-field input[type=text]:focus, .materialize-textarea:focus:not([readonly]) {
       border-bottom: 1px solid #b71c1c !important;
       box-shadow: 0 1px 0 0 #b71c1c !important;
      }
      

      【讨论】:

        【解决方案5】:

        在文档中说明如何设置具体化默认颜色。您需要将sass 文件下载到您的项目中,然后您需要更改这些变量。

        你需要去/sass/components/forms/*/设置你需要的元素。

        在所有元素中,您可以看到颜色是$secondary-color,您可以在/sass/components/_variables.scss 文件中找到该变量,您可以将其值更改为您所有项目的颜色。

        【讨论】:

          猜你喜欢
          • 2019-11-10
          • 1970-01-01
          • 2018-11-10
          • 2012-09-15
          • 2023-03-30
          • 2019-12-14
          • 2011-12-02
          • 2015-04-08
          相关资源
          最近更新 更多