#css #react-virtualized
#css #реагировать-виртуализированный
Вопрос:
Пытался изменить цвет заполнителя по умолчанию моего элемента react-virtualized-select, используя как input::-webkit-input-placeholder, так и свойство singleValue, но это не работает. Я даже попытался обернуть весь код в пользовательскую тему, где основным цветом был синий, но это тоже не сработало. Я хочу, чтобы он изменил его на цвет, который находится в заполнителе текстового поля.
import "react-select/dist/react-select.css";
import "react-virtualized/styles.css";
import "react-virtualized-select/styles.css";
import "material-components-web/dist/material-components-web.css";
import "./react-select.css";
import React from "react";
import ReactDOM from "react-dom";
import Select from "react-virtualized-select";
import TextField from "rmwc/TextField";
const colourStyles = {
singleValue: styles => ({ ...styles, color: "blue" })
};
const options = Array.from(new Array(10), (_, index) => ({
label: `Item ${index}`,
value: index
}));
class Foo extends React.Component {
constructor(props) {
super(props);
this.state = {
option: undefined
};
}
render() {
return (
<React.Fragment>
<Select
className={"mdc-react-select"}
value={this.state.option}
onChange={option => this.setState({ option })}
styles={colourStyles}
options={options}
inputRenderer={props => {
return (
<TextField
{...props}
fullwidth
ref={undefined}
inputRef={props.ref}
placeholder={"Farm"}
required
value={
props.value ||
(this.state.option ? this.state.option.label : undefined)
}
/>
);
}}
/>
<br />
<br />
<div>
<TextField
ref={undefined}
label={"Farm"}
value={this.state.option ? this.state.option.label : undefined}
style={{ width: "100%" }}
/>
</div>
</React.Fragment>
);
}
}
ReactDOM.render(<Foo />, document.getElementById("root"));
CSS:
body {
font-family: "Roboto";
}
.mdc-react-select .Select-placeholder,
.mdc-react-select .Select-value {
display: none;
}
.mdc-react-select .Select-control {
background-color: transparent;
border-color: none;
border-radius: 0;
border: none;
color: #333;
cursor: defau<
display: table;
border-spacing: 0;
border-collapse: separate;
height: 36px;
outline: none;
overflow: hidden;
position: relative;
width: 100%;
box-shadow: none !important;
}
.mdc-react-select .Select-input {
opacity: 1 !important;
width: 100%;
}
.mdc-text-field .mdc-line-ripple{
background-color: rgb(23,87,170);
}
.mdc-floating-label .mdc-floating-label--float-above{
color: rgb(23,87,170) !important;
}
.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label{
color:rgb(23,87,170) !important;
}
/* .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover{
color:rgb(23,87,170) !important;
} */
/* input::-webkit-input-placeholder {
color: #999;
} */
Ответ №1:
Попробуйте это:
.mdc-react-select .Select-input {
color: red;
}
.mdc-react-select .Select-placeholder {
color: red;
}
Комментарии:
1. Почему вы задаете этот стиль?
.mdc-react-select .Select-placeholder, .mdc-react-select .Select-value { display: none; }
2. Потому что, если бы не указанный выше css, он отображал бы дополнительный заполнитель «Выбрать …» в дополнение к моему пользовательскому заполнителю «ферма».
3. Теперь я вижу, что у вас есть текстовое поле внутри Select, вот почему приведенный выше код не сработал. Можете ли вы привести нам живой пример?
4. Я хочу, чтобы цвет как строки, так и заполнителя был синим вместо фиолетового как для выбора, так и для текстового поля