2016-06-13 5 views
2

Я использую Material Design Lite (getmdl.io) для своего веб-приложения. У меня есть текстовое поле с плавающей точкой label;Материал Дизайн Lite динамически меняет цвет

Я хочу изменить цвет подчеркивания текстового поля на собственный цвет, а не тот, который я определил как основной цвет (строка, которая появляется при фокусировке текстового поля).

Как я могу изменить этот цвет с помощью CSS или Javascript?

Edit:

Это как реализуется текстовые поля MDL, но некоторый JS используется для выполнения динамического подчеркивания на дне.

Вы также можете увидеть пример в движении 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

Вы можете показать, как MDL реализовать текстовое поле? – XZKS

+0

@XZKS Я отредактировал с примерами – tommybond

+1

Проверьте webtool в хром и установите: focus o nthat и добавьте! Важно для этого, чтобы убедиться :) :) – Medda86

ответ

5

Поскольку вы используете MDL и не регулярные Materialize.CSS, и выполнив несколько тестов, что линия идет от этого сценария:

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

MDL предоставляет 19 возможных цветов, которые вы можете добавить, добавив --color в класс, где элемент, который вы хотите изменить.

Но это для background-color в элементе, в этом случае он применяется к псевдо элемент ::after, так что вы можете использовать собственный цвет, как вы хотите с помощью цвета 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>

Здесь является уже существующим Codepen со всеми возможными цветами

Вы всегда можете создать собственную тему here

+0

Это работает до некоторой степени - но теперь я получаю свой собственный цвет и свой основной цвет, подчеркивая текстовое поле ввода – tommybond

+0

, чтобы поделиться ссылкой, чтобы помочь вам? – dippas

+0

У меня действительно нет способа сделать это, к сожалению.Я заметил, что вы используете Materialize вместо MDL, но я предполагаю, что это имеет к этому какое-то отношение. – tommybond

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

Не уверен, что если !important необходимо, но это очень удобно при изменении основы CSS.

+0

Это именно то, что я искал! Благодаря! – tommybond

+0

Знаете ли вы, как изменить цвет текста? Это сработало чудеса, но мне нужна помощь здесь. https://jsfiddle.net/90u6Lxc4/5/, чтобы сделать его белым после клика, а не белым, все время, как @RonRoyston, сделает для меня. –

+0

@BillyFerguson вы имеете в виду текст ярлыка или текст ввода? – yuriy636

Смежные вопросы