Как я могу сделать заголовок прокручиваемым для небольших экранов в MDL?

С MDL 1.0 (http://www.getmdl.io/) я пытаюсь сделать заголовок прокручиваемым на больших и меньших экранах. . Но его можно прокручивать только на больших экранах (например, на моем компьютере), но не на экранах меньшего размера.

Вот html:

<html>
<head>
	<link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.0/material.teal-light_green.min.css" />
	<script src="https://storage.googleapis.com/code.getmdl.io/1.0.0/material.min.js"></script>
	<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
</head>
<body>
<!-- Simple header with scrollable tabs. -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
  <header class="mdl-layout__header mdl-layout__header--scroll">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
    </div>
    <!-- Tabs -->
    <div class="mdl-layout__tab-bar mdl-js-ripple-effect">
      <a href="#scroll-tab-1" class="mdl-layout__tab is-active">Tab 1</a>
      <a href="#scroll-tab-2" class="mdl-layout__tab">Tab 2</a>
      <a href="#scroll-tab-3" class="mdl-layout__tab">Tab 3</a>
      <a href="#scroll-tab-4" class="mdl-layout__tab">Tab 4</a>
      <a href="#scroll-tab-5" class="mdl-layout__tab">Tab 5</a>
      <a href="#scroll-tab-6" class="mdl-layout__tab">Tab 6</a>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
  </div>
  <main class="mdl-layout__content">
    <section class="mdl-layout__tab-panel is-active" id="scroll-tab-1">
      <div class="page-content"><br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!<br />New line!</div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-2">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-3">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-4">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-5">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-6">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
  </main>
</div>
</body>
</html>

Как видите, заголовок можно прокручивать, но только для больших экранов (например, на ПК). Но если вы уменьшите окно или просто запустите его на меньшем экране, заголовок будет фиксированным и не будет прокручиваться. Также, если я удалю mdl-layout--fixed-header из внешнего div (главного div), заголовок исчезнет на небольших экранах.

Любая идея, как сделать заголовок прокручиваемым как на больших, так и на меньших экранах?


person raulx222    schedule 08.07.2015    source источник
comment
вы имеете в виду, что заголовок не должен быть зафиксирован на любом экране?   -  person Monkviper    schedule 09.07.2015
comment
@Monkviper Нет ... это не должно быть исправлено ни на одном экране, так как я добавил класс mdl-layout__header--scroll в заголовок.   -  person raulx222    schedule 09.07.2015


Ответы (4)


У меня была такая же проблема, и я решил ее, добавив «flex-shrink: 0;» в .mdl-layout__content

person Devlesch    schedule 21.07.2015
comment
Какие-либо известные побочные эффекты? - person Melvin; 06.03.2016
comment
Только что нашел. Если у вас открыт mdl-layout__drawer, вся страница (включая ящик) будет прокручиваться: jsfiddle.net/bf70rj0b (откройте ящик и прокрутите). - person Melvin; 06.03.2016
comment
Как упоминал Марко, вы можете решить эту проблему с помощью .mdl-layout__drawer.is-visible~.mdl-layout__content {flex-shrink: 1;} - person RAGHU RAMAN; 20.04.2017
comment
не работает. Прокрутка не идет в крайнее правое положение. Только частично прокручиваю!! - person mythicalcoder; 25.04.2017

У меня была такая же проблема при работе с темой MDL Wordpress. Я заставил заголовок прокручиваться вместе с остальной частью страницы на маленьких экранах, добавив следующий CSS:

@media screen and (max-width: 850px) {
    .mdl-layout__container {
         position: static;
    }
}

Использование этого метода позволяет вывести строку URL-адреса Chrome на мобильных устройствах за пределы экрана при прокрутке (что было моей главной целью).

Я также оставил заголовок видимым в верхней части страниц на маленьких экранах с помощью этого CSS:

@media screen and (max-width: 850px) {
    .mdl-layout__header {
        display: block;
    }
}
person twinfield    schedule 01.08.2015

В продолжение поста Devleshes замена высоты mdl-layout__content на следующую предотвратит двойные полосы прокрутки.

Следующий фрагмент помогает мне:

.mdl-layout__content {
  flex-shrink: 0;
}

.mdl-layout__drawer.is-visible~.mdl-layout__content {
  height: calc(100vh - 50px);
}

(где 50px — высота моего mdl-layout__header)

person Marco Troost    schedule 31.03.2016
comment
Я думаю, что лучшим решением было бы: .mdl-layout__drawer.is-visible~.mdl-layout__content { flex-shrink: 1; } Так как вы не хотите иметь в виду высоту вашего заголовка. :) - person RAGHU RAMAN; 20.04.2017

Убедитесь, что у вас установлен метатег viewport:

<meta name="viewport" content="width=device-width">

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

person Garbee    schedule 08.07.2015