Материал-UI настройки цвета

Если вы хотите, чтобы прокрутка работала, перед тем, как скрывать полосы прокрутки, подумайте о том, чтобы имитировать их. Современные версии OS X и мобильных ОС имеют полосы прокрутки, которые, хотя и непрактичны для захвата мышью, довольно красивы и нейтральны.

Чтобы скрыть полосы прокрутки, используется метод Джона Курлака за исключением того, что пользователи Firefox, у которых нет сенсорных панелей, не имеют возможности прокручивать, если у них нет мыши с колесом, что они, вероятно, делают, но даже тогда они обычно могут прокручивать только вертикально.

Техника Джона использует три элемента:

  • Внешний элемент для маскировки полос прокрутки.
  • Средний элемент для полос прокрутки.
  • И элемент содержимого для обоих установите размер среднего элемента и сделайте его полосками прокрутки.

Должно быть возможно установить размер внешнего и содержимого элементов одинаково, что исключает использование процентов, но я не могу подумайте о чем-нибудь еще, что не будет работать с правильной настройкой.

Моя самая большая проблема заключается в том, устанавливают ли все версии браузеров полосы прокрутки для отображения видимого переполненного содержимого v isible. Я тестировал в текущих браузерах, но не старше.

Простите мой SASS ; P

%size {
    // set width and height
}

.outer {
    // mask scrollbars of child
    overflow: hidden;
    // set mask size
    @extend %size;
    // has absolutely positioned child
    position: relative;
}

.middle {
    // always have scrollbars.
    // don't use auto, it leaves vertical scrollbar showing
    overflow: scroll;
    // without absolute, the vertical scrollbar shows
    position: absolute;
}
// prevent text selection from revealing scrollbar, which it only does on
// some webkit based browsers.
.middle::-webkit-scrollbar {
    display: none;
}

.content {
    // push scrollbars behind mask
    @extend %size;
}

Тестирование

ОС X равно 10.6.8. Windows - Windows 7.

  • Firefox 32.0 Скрытые полосы скрыты. Клавиши со стрелками не прокручиваются, даже после нажатия на фокусировку, но колесико мыши и два пальца на трекпаде. OS X и Windows.
  • Chrome 37.0 Скроллинг скрыт. Клавиши со стрелками работают после нажатия на фокус. Работа колесика мыши и трекпада. OS X и Windows.
  • Скрытые полосы браузера Internet Explorer 11. Клавиши со стрелками работают после нажатия на фокус. Колесо мыши работает. Windows.
  • Safari 5.1.10 Скроллинг скрыт. Клавиши со стрелками работают после нажатия на фокус. Работа колесика мыши и трекпада. OS X.
  • Android 4.4.4 и 4.1.2. Полосы прокрутки скрыты. Нажмите прокрутку. Пробовал в Chrome 37.0, Firefox 32.0 и HTMLViewer в 4.4.4 (что бы это ни было). В HTMLViewer страница представляет собой размер маскированного контента и может также прокручиваться! Скроллинг взаимодействует с масштабированием страницы.

0
задан A.P. 4 March 2019 в 07:25
поделиться

1 ответ

У вас есть две проблемы:

  1. Вы предоставили MuiThemeProvider, но он не упаковывает Paper. Но вы хотите изменить стиль Paper. Вы должны убедиться, что MuiThemeProvider является родителем компонентов, которые вы пытаетесь настроить. См. Документы .
  2. На цвет фона Paper не влияют palette.primary или palette.secondary. Он принимает цвет из palette.background.paper. См. Тему по умолчанию здесь .

Вот демонстрация, надеюсь, это поможет.

const {createMuiTheme, green, CssBaseline, Paper, MuiThemeProvider
} = window['material-ui'];

const theme = createMuiTheme({
  typography: {
    useNextVariants: true,
  },
  palette: {
   background: {paper: '#5fba7d'}
  },
});

 const Footer = () => {
    return(
     <React.Fragment>
       <CssBaseline />
       <MuiThemeProvider theme={theme}>
        <Paper elevation={1}>
          <h2>Copywright Medicinal Foods 2019!</h2>
          <h3>All Rights Reserved!</h3>
          <h4>Thanks for visitng!</h4>
        </Paper>
      </MuiThemeProvider>
     </React.Fragment>
   );
 }

ReactDOM.render(<Footer />, document.getElementById('root'));
<script src="https://unpkg.com/react@latest/umd/react.development.js" crossorigin="anonymous"></script>
<script src="https://unpkg.com/react-dom@latest/umd/react-dom.development.js" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@material-ui/core/umd/material-ui.development.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<div id="root"></div>

0
ответ дан mehamasum 4 March 2019 в 07:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: