2015-03-17 16 views
19

Tôi đang sử dụng tài liệu góc cạnh và muốn thiết kế bố cục cho ứng dụng của mình.Vật liệu góc: Cách tạo nội dung có thể cuộn

<!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> 

Câu hỏi của tôi là, cách làm cho nội dung md có thể cuộn được? Div ở phía dưới phải là chân trang dính. Chú ý, trên chrome trông hoạt động nhưng trên firefox không. Tôi tin tưởng firefox, bởi vì chrome có vấn đề với flexbox.

Tôi đã tạo một plunker, nhưng tôi không thể chèn liên kết vào chuỗi, nó luôn xuất hiện một thông báo lỗi.

Trả lời

24

CẬP NHẬT

Vấn đề này không còn xuất hiện với góc-Vật liệu 1.1.1 - câu hỏi ban đầu là tại thời điểm phiên bản 0.8.3

ORIGINAL

Sử dụng nội dung md trên các phần tử bên ngoài.

<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

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

+0

Điều này hóa ra là một điểm rất quan trọng! – charneykaye

+4

theo các tài liệu md-nội dung không nên được lồng nhau –

+0

Tôi biết, nhưng nó đã làm việc tốt cho đến nay. Bạn có lựa chọn khác không? – kuhnroyal

6

thử thêm style="overflow: scroll;" vào thẻ bạn muốn cuộn.

Ví dụ tôi có trong tôi:

<div layout="column" flex style="overflow: scroll;"> 
    <div id="content" ng-view flex></div> 
</div> 
+0

Cảm ơn nhưng nó không hoạt động. –

+1

Đã sử dụng một cái gì đó gần với điều này, vì vậy cảm ơn! –

4

Nó không đủ để thiết lập overflow: scroll.

Bạn cần thêm position: absolute và đặt kích thước vùng chứa cần cuộn. Hãy thử một cái gì đó như thế này:

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

Để biết thêm thông tin về container di chuyển đọc this answer

Cảm ơn.

-2

Để thực hiện các nội dung md-cuộn, thêm thuộc tính md-scroll-y, như thế này:

<md-content md-scroll-y> 
</md-content> 
+0

Điều này không hiệu quả đối với tôi. – Noel

1

tôi giải quyết vấn đề này (tài liệu góc 0.11.0)

index.html

<body ng-app="app" layout="column" > 
    <div flex layout="column" ng-include="'app/layout/shell.html'" ></div> 
<body> 

shell.html

<div layout="row" flex style="overflow: hidden;" ng-controller="Shell" layout-fill> 
    <div ng-include="'app/layout/left-side-nav.html'"></div> 
    <md-content flex layout="column" role="main" class="fondo" style="height: inherit"> 
     <div ng-include="'app/layout/app-toolbar.html'"></div> 
     <md-content flex style="background-color: transparent; flex-direction: column;" ng-hide="dataLoading.init"> 
      <div ui-view  style="background-color: transparent"></div> 
     </md-content> 
    </md-content> 
    <div ng-include="'app/layout/right-side-nav.html'"></div> 
</div> 
0

Điều gì làm việc cho tôi như sau. Một dễ dàng cách là,

<div style="left:0; 
      top: 0; 
      overflow: auto; 
      min-height:auto; 
      max-height:100%; 
      height:300px;"> 

Hoặc thêm nó như css bên ngoài.

Bí quyết là tràn. Nếu dữ liệu trên trang tràn, nó sẽ tự động trở thành cuộn được.

Ngoài ra, nó sẽ chỉ làm cho dữ liệu có thể cuộn được trong div như được hiển thị bên dưới.

enter image description here

Các vấn đề liên quan