2016-06-13 6 views
2

Ich verwende Material Design Lite (getmdl.io) für meine Web-App. Ich habe eine Textbox mit einem schwimmenden label;Material Design Lite dynamisch Farbe ändern

Ich möchte die Unterstreichungsfarbe des Textfelds in eine benutzerdefinierte Farbe ändern, nicht eine, die ich als meine primäre Farbe definiert habe (die Linie, die angezeigt wird, wenn Sie das Textfeld fokussieren).

Wie kann ich diese Farbe über CSS oder Javascript ändern?

Edit:

Dies ist, wie die MDL Textfelder implementiert werden, aber einige JS verwendet wird, um die dynamische unterstrichen auf dem Boden zu tun.

Sie können auch ein Beispiel in Bewegung here

<form action="#"> 
    <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> 
    <input class="mdl-textfield__input" type="text" id="sample3"> 
    <label class="mdl-textfield__label" for="sample3">Text...</label> 
    </div> 
</form> 
+1

können Sie zeigen, wie MDL ein Textfeld implementieren? – XZKS

+0

@XZKS Ich bearbeite mit Beispielen – tommybond

+1

Überprüfen Sie das Webtool in Chrome und stellen Sie: Fokus o nthat und hinzufügen! Wichtig, um sicherzustellen, dass :) – Medda86

Antwort

5

Weil Sie verwenden MDL und nicht die regelmäßige Materialize.CSS, und indem Sie ein paar Tests sehen, kommt diese Zeile aus diesem Skript:

<script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script> 

MDL bietet 19 mögliche Farben, die Sie haben können, indem Sie der Klasse hinzufügen, in der das Element geändert werden soll.

Aber das ist für background-color in dem Element, in diesem Fall ist es angewendet wird Element Pseudo ::after, so dass Sie eine benutzerdefinierte Farbe verwenden können, wie Sie Farbe verwenden möchten teal

div .mdl-textfield__label:after { 
 
    background: teal 
 
}
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> 
 
<link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.indigo-pink.min.css"> 
 
<script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script> 
 
<form action="#"> 
 
    <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> 
 
    <input class="mdl-textfield__input" type="text" id="sample3"> 
 
    <label class="mdl-textfield__label" for="sample3">Text...</label> 
 
    </div> 
 
</form>

Hier ist eine bereits existierende Codepen mit allen möglichen Farben

Sie können immer Ihr eigenes Themabauen

+0

Dies funktioniert zu einem gewissen Grad - aber jetzt bekomme ich meine benutzerdefinierte Farbe und meine Grundfarbe beide Unterstreichungen der Texteingabefeld – tommybond

+0

Pflege, um einen Link zu teilen, um Ihnen zu helfen? – dippas

+0

Ich habe leider keine Möglichkeit, das zu tun.Mir ist aufgefallen, dass Sie Materialize anstelle von MDL verwenden, also nehme ich an, dass das etwas damit zu tun hat. – tommybond

2
.mdl-textfield__label:after{ 
    background-color: #3f51b5 !important; 
} 

Nicht sicher, ob !important ist notwendig, aber es ist praktisch, wenn ein CSS-Framework zu modifizieren.

+0

Das ist genau das, was ich gesucht habe! Vielen Dank! – tommybond

+0

Wissen Sie, wie Sie die Textfarbe ändern können? Das hat Wunder gewirkt, aber ich brauche hier Hilfe. https://jsfiddle.net/90u6Lxc4/5/, um es weiß nach dem Klick zu machen und nicht weiß die ganze Zeit wie @RonRoyston würde für mich tun. –

+0

@BillyFerguson meinst du den Etikettentext oder den Eingabetext? – yuriy636

Verwandte Themen