Как удалить изогнутую границу и тень вставки из компонента Material UI TextField React?

Вот поле ввода:

введите здесь описание изображения

В нем есть эта внутренняя тень и изогнутые границы.

Вот код:

import React, {Component} from 'react';
import TextField from 'material-ui/TextField';
import { connect } from 'react-redux';

class SearchInput extends Component {

    constructor(props) {
        super(props);
        this.state = {
            searchInputFieldValue: ''
        };
    }

    textFieldOnChangeSearch(event) {
        this.setState({searchInputFieldValue: event.target.value});
        this.props.phoneBookSearch(event.target.value);
    }

    render() {
        return (
            <div>
                <TextField
                    underlineShow={false}
                    hintText="Hae.."
                    onChange={this.textFieldOnChangeSearch.bind(this)}
                    value={this.state.searchInputFieldValue}
                    style={{
                        boxShadow: 'none',
                        height: '57px', 
                        width: '460px',
                        /*
                        borderStyle: 'solid',
                        borderColor: '#2375BB',
                        borderWidth: '2px',
                        */
                        backgroundColor: '#FFFFFF'
                    }}
                    />
            </div>
        )
    }
}

export default SearchInput;

Вот как это отображается в инспектировании браузера:

Если я раскомментирую закомментированную часть стиля в коде, это будет выглядеть следующим образом:

введите здесь описание изображения

Как видите, вот синяя граница, которая мне нужна, но изогнутые границы и внутренняя тень все еще видны на заднем плане.

Как их убрать? Даже box-shadow: нет! Важно; в веб-инструментах не удаляет его.


person Steve Waters    schedule 04.01.2018    source источник
comment
Можете поделиться jsbin? Осмотреть будет легче. Поскольку пользовательский интерфейс материала создает иерархию элементов для отображения текстового поля, может потребоваться применить стиль к другому элементу, чтобы повлиять на видимый стиль.   -  person Dangling Cruze    schedule 04.01.2018
comment
Хорошо, я буду через мгновение.   -  person Steve Waters    schedule 04.01.2018


Ответы (4)


Пожалуйста, проверьте элемент, к которому применяются boxShadow и borderRadius. Когда вы его найдете, соответственно, вы можете использовать различные атрибуты текстового файла пользовательского интерфейса материала и влиять на его стиль.

Если стиль находится в основном элементе, значит, ваш атрибут стиля должен сработать.

Я подозреваю, что это элемент input, который вы можете изменить, используя атрибут inputStyle для TextField.

Также проверьте docs, чтобы узнать о дополнительных параметрах атрибутов стиля для конкретного элемента.

person Dangling Cruze    schedule 04.01.2018
comment
Верно. my boxShadow: «none» должно быть в атрибуте inputStyle, а не в атрибуте стиля. Это исправило это. Спасибо. - person Steve Waters; 04.01.2018

#test {
  height: 50px;
  width: 300px;
  border: 2px solid red;
}
#test:focus {
  border: 2px solid black;
  border-radius: 0px;
  box-shadow: none;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;

}
<input id ="test" type="text">

Это может помочь

person simbathesailor    schedule 04.01.2018

Вы можете определить свойство outline для none, а focus в этом input текстовом поле.

'&:focus': {
            outline: "none"
           },

это будет отлично работать для меня. !!

person aman.rishu98    schedule 09.09.2019

В компоненте TextField добавьте ниже variant="outlined" и InputProps:

InputProps={{
  ...params.InputProps,
  classes: {
    notchedOutline: classes input
},
startAdornment: (
  <SearchIcon />
),

Также не забудьте использовать makeStyles из @material-ui/core/styles:

const useStyles = makeStyles(theme => ({
  input: {
    padding: '15px 0px',
    border: 'none'
  },
  list: {
    maxHeight: 300,
    overflowY: 'scroll',
    "& .MuiAutocomplete-option": {
      padding: 0
    },
  }
}));
person Matheus Lima    schedule 30.07.2020
comment
Добро пожаловать в Stack Overflow. Изображения текста следует заменить содержащимся в них текстом или дополнить им, потому что изображения текста не доступны для поиска, недоступны и не могут быть скопированы и использованы людьми, пытающимися извлечь пользу из вашего ответа. Добавляя ответ на старый вопрос с принятым ответом, важно указать, к какому новому аспекту вопроса относится ваш ответ. - person Jason Aller; 30.07.2020