Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular Material : How to make content scrollable

I am using angular material and want to design a layout for my application.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Angular Material - Starter App</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="description" content="">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no"/>

    <link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Roboto:400,700'>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.8.3/angular-material.css"/>
    <link rel="stylesheet" href="./style.css"/>

</head>

<body ng-app="starterApp" layout="column" layout-fill>

    <div flex="30" style="border: 1px solid darkgrey;background-color: #1CA9F0;"></div>
    <div flex style="border: 1px solid firebrick;" layout="column">
        <div flex="5" layout="row" layout-align="center">
            <md-toolbar flex="50">
                <h2 class="md-toolbar-tools">
                    <span>Toolbar</span>
                </h2>
            </md-toolbar>
        </div>
        <div flex layout="row" layout-align="center">
            <md-content flex="50">
                Lorem ipsum dolor sit amet, ne quod novum mei. Sea omnium invenire mediocrem at, in lobortis conclusionemque nam. Ne deleniti appetere reprimique pro, inani labitur disputationi te sed. At vix sale omnesque, id pro labitur reformidans accommodare, cum labores honestatis eu. Nec quem lucilius in, eam praesent reformidans no. Sed laudem aliquam ne.
                <p>
                    Facete delenit argumentum cum at. Pro rebum nostrum contentiones ad. Mel exerci tritani maiorum at, mea te audire phaedrum, mel et nibh aliquam. Malis causae equidem vel eu. Noster melius vis ea, duis alterum oporteat ea sea. Per cu vide munere fierent.
                </p>
                <p>
                    Ad sea dolor accusata consequuntur. Sit facete convenire reprehendunt et. Usu cu nonumy dissentiet, mei choro omnes fuisset ad. Te qui docendi accusam efficiantur, doming noster prodesset eam ei. In vel posse movet, ut convenire referrentur eum, ceteros singulis intellegam eu sit.
                </p>
                <p>
                    Sit saepe quaestio reprimique id, duo no congue nominati, cum id nobis facilisi. No est laoreet dissentias, idque consectetuer eam id. Clita possim assueverit cu his, solum virtute recteque et cum. Vel cu luptatum signiferumque, mel eu brute nostro senserit. Blandit euripidis consequat ex mei, atqui torquatos id cum, meliore luptatum ut usu. Cu zril perpetua gubergren pri. Accusamus rationibus instructior ei pro, eu nullam principes qui, reque justo omnes et quo.
                </p>
                <p>
                    Sint unum eam id. At sit fastidii theophrastus, mutat senserit repudiare et has. Atqui appareat repudiare ad nam, et ius alii incorrupte. Alii nullam libris his ei, meis aeterno at eum. Ne aeque tincidunt duo. In audire malorum mel, tamquam efficiantur has te.
                </p>
                <p>
                    Qui utamur tacimates quaestio ad, quod graece omnium ius ut. Pri ut vero debitis interpretaris, qui cu mentitum adipiscing disputationi. Voluptatum mediocritatem quo ut. Fabulas dolorem ei has, quem molestie persequeris et sit.
                </p>
                <p>
                    Est in vivendum comprehensam conclusionemque, alia cetero iriure no usu, te cibo deterruisset pro. Ludus epicurei quo id, ex cum iudicabit intellegebat. Ex modo deseruisse quo, mel noster menandri sententiae ea, duo et tritani malorum recteque. Nullam suscipit partiendo nec id, indoctum vulputate per ex. Et has enim habemus tibique. Cu latine electram cum, ridens propriae intellegat eu mea.
                </p>
                <p>
                    Duo at aliquid mnesarchum, nec ne impetus hendrerit. Ius id aeterno debitis atomorum, et sed feugait voluptua, brute tibique no vix. Eos modo esse ex, ei omittam imperdiet pro. Vel assum albucius incorrupte no. Vim viris prompta repudiare ne, vel ut viderer scripserit, dicant appetere argumentum mel ea. Eripuit feugait tincidunt pri ne, cu facilisi molestiae usu.
                </p>
                <p>
                    Qui utamur tacimates quaestio ad, quod graece omnium ius ut. Pri ut vero debitis interpretaris, qui cu mentitum adipiscing disputationi. Voluptatum mediocritatem quo ut. Fabulas dolorem ei has, quem molestie persequeris et sit.
                </p>
                <p>
                    Est in vivendum comprehensam conclusionemque, alia cetero iriure no usu, te cibo deterruisset pro. Ludus epicurei quo id, ex cum iudicabit intellegebat. Ex modo deseruisse quo, mel noster menandri sententiae ea, duo et tritani malorum recteque. Nullam suscipit partiendo nec id, indoctum vulputate per ex. Et has enim habemus tibique. Cu latine electram cum, ridens propriae intellegat eu mea.
                </p>

            </md-content>
        </div>
    </div>
    <div flex="5" style="border: 1px solid turquoise;"></div>


    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular-animate.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular-aria.min.js"></script>
    <script type="text/javascript"
            src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.8.3/angular-material.js"></script>

    <script type="text/javascript">

        angular
                .module('starterApp', ['ngMaterial'])
                .run(function ($log) {
                    $log.debug("starterApp + ngMaterial running...");
                });

    </script>

    </body>
</html>

My question is, how to make the md-content scrollable? The div on the bottom should be a sticky footer. Attention, on chrome looks works but on firefox not. I am trust firefox, because chrome has issue with flexbox.

I've created a plunker, but I can't insert link into the thread, it appears always an error msg.

like image 362
softshipper Avatar asked Mar 17 '15 20:03

softshipper


People also ask

Can you make a div scrollable?

Making a div vertically scrollable is easy by using CSS overflow property. There are different values in overflow property. For example: overflow:auto; and the axis hiding procedure like overflow-x:hidden; and overflow-y:auto;.

What is virtual scrolling in angular material?

Loading hundreds of elements can be slow in any browser; virtual scrolling enables a performant way to simulate all items being rendered by making the height of the container element the same as the height of total number of elements to be rendered, and then only rendering the items in view.


3 Answers

UPDATE

This problem no longer appears with Angular-Material 1.1.1 - the original question was at the time of version 0.8.3

ORIGINAL

Use md-content on the outer elements as well.

<body ng-app="starterApp" layout="column" layout-fill>

  <div flex="30" style="border: 1px solid darkgrey;background-color: #1CA9F0;"></div>
  <md-content flex style="border: 1px solid firebrick;" layout="column">
      <div flex="5" layout="row" layout-align="center">
          <md-toolbar flex="50">
              <h2 class="md-toolbar-tools">
                  <span>Toolbar</span>
              </h2>
          </md-toolbar>
      </div>
      <md-content flex layout="row" layout-align="center">
          <md-content flex="50">
            ...
          </md-content>
      </md-content>
  </md-content>
  <div flex="5" style="border: 1px solid turquoise;"></div>
  ...
</body>

[Plunkr] http://plnkr.co/edit/IfEtX638z4ymccC0Ua53?p=preview

See: https://github.com/angular/material/issues/1906

like image 78
kuhnroyal Avatar answered Oct 22 '22 18:10

kuhnroyal


try adding style="overflow: scroll;" to the tag you wish to be scrollable.

For example I have in mine:

<div layout="column" flex style="overflow: scroll;">
    <div id="content" ng-view flex></div>
</div>
like image 29
Hugo Nakamura Avatar answered Oct 22 '22 19:10

Hugo Nakamura


It's not enough to set overflow: scroll.

You need to add position: absolute and to set a size of your container that need to be scrollable. Try something like this:

md-content{
     position: absolute;
     height: 100px;
}

For more information of scrolling containers read this answer

Thanks.

like image 5
flowr Avatar answered Oct 22 '22 17:10

flowr