Вкладки Material-UI 'selected' недостаточно конкретны. - PullRequest
0 голосов
/ 01 октября 2018

Кодовая песочница здесь:

https://codesandbox.io/s/ypx4qpjvpx

Соответствующие биты:

const styles = theme => ({
  root: {
    flexGrow: 1,
    backgroundColor: theme.palette.background.paper
  },

  label: {
    fontWeight: "normal"
  },

  selected: {
    fontWeight: "bold"
  }
});



  <Tabs value={value} onChange={this.handleChange}>
    <Tab
      label="Item One"
      classes={{
        label: classes.label,
        selected: classes.selected
      }}
    />
    <Tab
      label="Item Two"
      classes={{
        label: classes.label,
        selected: classes.selected
      }}
    />
    <Tab
      label="Item Three"
      href="#basic-tabs"
      classes={{
        label: classes.label,
        selected: classes.selected
      }}
    />
  </Tabs>

Я пытаюсь здесь переопределить шрифт по умолчаниюСтиль веса, но на выбранном, я хочу, чтобы он был жирным.

Проблема в том, что они имеют одинаковый уровень специфичности, и метка появляется после выбранной, поэтому она переопределяет ее.

Как мне сделать выбранный более конкретным / достичь того, что я хочу, не используя! Важный.

1 Ответ

0 голосов
/ 01 октября 2018

Я думаю, что самый простой способ - использовать класс root вместо label (для Tab компонента ).

Демонстрация: https://codesandbox.io/s/q3pmn9o7m4
(я добавил цвета, чтобы изменения были легче увидеть.)

<Tab
    label="Item One"
    classes={{
        root: classes.tabRoot,
        selected: classes.selected,
    }}
/>

const styles = theme => ({
    root: {
        flexGrow: 1,
        backgroundColor: theme.palette.background.paper,
    },

    tabRoot: {
        fontWeight: "normal",
        color: "#fff",
    },

    selected: {
        fontWeight: "bold",
        color: "#0ff",
    }
});

Другой способ: https://codesandbox.io/s/8op0kwxpj

const styles = theme => ({
  root: {
    flexGrow: 1,
    backgroundColor: theme.palette.background.paper,
  },

  tabRoot: {
    fontWeight: "normal",
    color: "#fff",
    '&$selected': {
      fontWeight: "bold",
      color: "#0ff",
    },
  },

  selected: {},
});
...