Стиль реагирует на вкладки Material-ui

Я только начал использовать reacts material-ui, и я хотел бы настроить некоторые стили. Например, изменение цвета фона вкладок.

пытаюсь использовать inlineStyle

нравиться

<Tabs style={this.getStyles().tabs} > </Tabs>

    getStyles(){
        return {

          tabs: {
            backgroundColor: Colors.teal200
          },

          headline: {
            fontSize: '24px',
            lineHeight: '32px',
            paddingTop: '16px',
            marginBottom: '12px',
            letterSpacing: '0',
            fontWeight: Typography.fontWeightNormal,
            color: Typography.textDarkBlack,

          }
        }
    }

изменяет область содержимого вкладок, но не заголовок.

здесь у нас есть некоторые атрибуты цвета, как мы их используем? В этом случае Документы не приводят примеров.

Как мне продолжить?


person fefe    schedule 05.08.2015    source источник
comment
Добавить CSS, чтобы переопределить текущие стили?   -  person idbehold    schedule 05.08.2015
comment
просто используйте предоставленные цветовые коды material-ui.com/#/customization/colors, чтобы изменить цвет фона вкладки. Но как?   -  person fefe    schedule 05.08.2015


Ответы (4)


Я делаю это так, чтобы переопределить стиль <Tab> (если у вас есть контролируемые вкладки)

render: function() {

  var styles = {
    default_tab:{
      color: Colors.grey500,
      backgroundColor: Colors.grey50,
      fontWeight: 400,
    },
    active_tab:{
      color: Colors.deepOrange700,
    }
  }

  styles.tab = []
  styles.tab[0] = styles.default_tab;
  styles.tab[1] = styles.default_tab;
  styles.tab[2] = styles.default_tab;
  styles.tab[this.state.slideIndex] = objectAssign({},   styles.tab[this.state.slideIndex], styles.active_tab);

  return (
    <Tabs>
      <Tab style={styles.tab[0]} label="Tab 0" value="0" />
      <Tab style={styles.tab[1]} label="Tab 1" value="1" />
      <Tab style={styles.tab[2]} label="Tab 2" value="2" />
    </Tabs>
  )

Хотя я думаю, что лучший способ - иметь больше реквизита для вкладок / вкладок, чтобы мы могли их настраивать.

person yuchien    schedule 14.12.2015
comment
Отлично! Просто обновите: objectAssign теперь Object.assign - person Felipe Augusto; 23.06.2017

Итак, если кто-то столкнется с тем же, вот что я нашел

с помощью ThemeManager мы можем изменить вывод стилей

Например

ThemeManager.setTheme(ThemeManager.types.DARK);

изменение определенных переменных стиля с помощью setPalette

componentWillMount() {
        ThemeManager.setPalette({
          accent1Color: Colors.indigo50,
            primary1Color: "#474B4E",
            primary2Color: "#2173B3",
            primary3Color: "#A9D2EB",
            accent1Color: "#ED3B3B",
            accent2Color: "#ED2B2B",
            accent3Color: "#F58C8C"
        });
     }
person fefe    schedule 09.08.2015

Самый удобный способ настроить компонент - просто применить старый простой CSS с помощью атрибута className, поскольку возможности предоставленных атрибутов style довольно ограничены.

Рассмотрим простой пример:

const MyAwesomeTabContainer = () => (
    <Tabs className="tabs-container">
        <Tab icon={<Person />} className="tab" />
        <Tab icon={<Content />} className="tab" />
    </Tabs>
);

Следующий код МЕНЬШЕ (не CSS!) Позволит вам настроить стиль в соответствии с вашими потребностями:

.tabs-container {
  >div:first-child { // modifies the background color
    background-color: #f6f6f6 !important;
  }

  >div:last-child { // changes the distance between tabs and content
    margin-top: 10px;
  }

  .tab {
    >div>div { // modifies the font size of the tab labels 
      font-size: 10px;

      svg { // modifies the color of SVG icons
        fill: #626262 !important;
      }
    }
  }
}

К сожалению, необходимо применить несколько операторов !important, потому что информация о стиле компонента встроена в код.

person Dennis    schedule 04.10.2016

Мне нужен класс на активной вкладке, поэтому вот быстрое решение для этого:

<Tabs className="pcd-tabs" onChange={this.handleChange}>
    <Tab className="pcd-tab pcd-tab0 pcd-tab-active" label="Chart" value={0} />
    <Tab className="pcd-tab pcd-tab1" label="Series" value={1} />
</Tabs>

чем

handleChange = (value) => {
  document.getElementsByClassName('pcd-tab-active')[0].classList.remove('pcd-tab-active');
  document.getElementsByClassName('pcd-tab' + value)[0].classList.add('pcd-tab-active');
};
person kakaja    schedule 28.04.2017