如何在侧面导航内固定底部 div 的 md-sidenav 内定义 md-list 的高度
How to define the height of a md-list inside a md-sidenav with fixed bottom div inside the side-nav
我正在尝试为 md-sidenav 中的 md-list 定义动态高度,在列表上方有一个固定的 div,一些用于过滤列表的输入,以及一个固定按钮页脚,md-sidenav 中的所有组件。
+ SideNav +
+++++++++++++++
+ Toolbar +
+-------------+
+ Filter Div + => this must have fixed height (max-height=150px)
+-------------+
+ md-list + => this list must fill all space between the filter div and
+ + the button div, applying some scroll bars if the number
+ + of elements force the height to be greather than screen.
+ +
+-------------+
+ Button Div + => this div must be fixed at the bottom of screen
+++++++++++++++
我真的不知道如何定义 md-list 的高度和固定屏幕底部的按钮 div。
代码:
<md-sidenav class="md-sidenav-left md-whiteframe-z2"
md-component-id="left"
ng-click="userCtrl.toggleList()" aria-label="Show User List"
md-is-locked-open="$mdMedia('gt-sm')">
<md-toolbar layout="row" class="md-whiteframe-z1">
<h3>Users</h3>
<md-button class="md-icon-button" aria-label="Filtro" style="top: 12px;"
ng-click="userCtrl.searching = !userCtrl.searching">
<md-icon md-svg-icon="assets/svg/find.svg"></md-icon>
</md-button>
</md-toolbar>
<div layout="column">
<div class="md-whiteframe-z1" layout-padding>
<div layout="row">
<md-checkbox ng-model="userCtrl.filterData.android">
Android
</md-checkbox>
<md-checkbox ng-model="userCtrl.filterData.ios">
iOS
</md-checkbox>
</div>
<div layout="column">
<md-input-container class="md-block">
<label>Email</label>
<input ng-model="userCtrl.filterData.username">
</md-input-container>
</div>
</div>
<md-list>
<md-list-item ng-repeat="it in userCtrl.users">
<md-button id="{{it.objectId}}" style="text-transform: none;" ng-click="userCtrl.selectUser(it)"
ng-class="{'selected' : it === userCtrl.selected }">
<md-icon id="active-ios" md-svg-src="assets/svg/iphone.svg"
ng-if="it.device == 'ios'"></md-icon>
<md-icon id="active-android" md-svg-src="assets/svg/android.svg"
ng-if="it.device == 'android'"></md-icon>
{{it.username}}
</md-button>
</md-list-item>
</md-list>
<div class="md-whiteframe-z1">
<md-button ng-click="userCtrl.loadMore()">Carregar Mais...</md-button>
</div>
</div>
</md-sidenav>
查看以下内容link。
http://codepen.io/next1/pen/pyaJWR
<md-content layout="row" layout-fill>
<md-sidenav class="md-sidenav-left" aria-label="Show User List" md-is-locked-open="$mdMedia('gt-sm')" style="background-color:red">
<md-toolbar layout="row" class="md-whiteframe-z1" layout-align="center center">
<h3>Users</h3>
<md-button class="md-icon-button" aria-label="Filtro" style="top: 12px;" ng-click="userCtrl.searching = !userCtrl.searching">
<md-icon md-svg-icon="assets/svg/find.svg"></md-icon>
</md-button>
</md-toolbar>
<div layout="column" class="md-whiteframe-z1" layout-padding>
<div layout="row">
<md-checkbox ng-model="userCtrl.filterData.android">
Android
</md-checkbox>
<md-checkbox ng-model="userCtrl.filterData.ios">
iOS
</md-checkbox>
</div>
<div layout="row">
<md-input-container class="md-block">
<label>Email</label>
<input ng-model="userCtrl.filterData.username">
</md-input-container>
</div>
</div>
<md-content flex>
<md-list layout-fill layout-align="center center">
<md-list-item ng-repeat="it in [1,2,3,4,5,6,7,8,9,0]">
<md-button flex> {{it}} </md-button>
</md-list-item>
</md-list>
</md-content>
<md-button ng-click="userCtrl.loadMore()">Carregar Mais...</md-button>
</md-sidenav>
<md-content layout="column" style="background-color:yellow" layout-fill>
<div flex>
Main Content
</div>
</md-content>
反对简化,我删除了一些样式 类。我相信添加它们不会给你带来麻烦。
我正在尝试为 md-sidenav 中的 md-list 定义动态高度,在列表上方有一个固定的 div,一些用于过滤列表的输入,以及一个固定按钮页脚,md-sidenav 中的所有组件。
+ SideNav +
+++++++++++++++
+ Toolbar +
+-------------+
+ Filter Div + => this must have fixed height (max-height=150px)
+-------------+
+ md-list + => this list must fill all space between the filter div and
+ + the button div, applying some scroll bars if the number
+ + of elements force the height to be greather than screen.
+ +
+-------------+
+ Button Div + => this div must be fixed at the bottom of screen
+++++++++++++++
我真的不知道如何定义 md-list 的高度和固定屏幕底部的按钮 div。
代码:
<md-sidenav class="md-sidenav-left md-whiteframe-z2"
md-component-id="left"
ng-click="userCtrl.toggleList()" aria-label="Show User List"
md-is-locked-open="$mdMedia('gt-sm')">
<md-toolbar layout="row" class="md-whiteframe-z1">
<h3>Users</h3>
<md-button class="md-icon-button" aria-label="Filtro" style="top: 12px;"
ng-click="userCtrl.searching = !userCtrl.searching">
<md-icon md-svg-icon="assets/svg/find.svg"></md-icon>
</md-button>
</md-toolbar>
<div layout="column">
<div class="md-whiteframe-z1" layout-padding>
<div layout="row">
<md-checkbox ng-model="userCtrl.filterData.android">
Android
</md-checkbox>
<md-checkbox ng-model="userCtrl.filterData.ios">
iOS
</md-checkbox>
</div>
<div layout="column">
<md-input-container class="md-block">
<label>Email</label>
<input ng-model="userCtrl.filterData.username">
</md-input-container>
</div>
</div>
<md-list>
<md-list-item ng-repeat="it in userCtrl.users">
<md-button id="{{it.objectId}}" style="text-transform: none;" ng-click="userCtrl.selectUser(it)"
ng-class="{'selected' : it === userCtrl.selected }">
<md-icon id="active-ios" md-svg-src="assets/svg/iphone.svg"
ng-if="it.device == 'ios'"></md-icon>
<md-icon id="active-android" md-svg-src="assets/svg/android.svg"
ng-if="it.device == 'android'"></md-icon>
{{it.username}}
</md-button>
</md-list-item>
</md-list>
<div class="md-whiteframe-z1">
<md-button ng-click="userCtrl.loadMore()">Carregar Mais...</md-button>
</div>
</div>
</md-sidenav>
查看以下内容link。
http://codepen.io/next1/pen/pyaJWR
<md-content layout="row" layout-fill>
<md-sidenav class="md-sidenav-left" aria-label="Show User List" md-is-locked-open="$mdMedia('gt-sm')" style="background-color:red">
<md-toolbar layout="row" class="md-whiteframe-z1" layout-align="center center">
<h3>Users</h3>
<md-button class="md-icon-button" aria-label="Filtro" style="top: 12px;" ng-click="userCtrl.searching = !userCtrl.searching">
<md-icon md-svg-icon="assets/svg/find.svg"></md-icon>
</md-button>
</md-toolbar>
<div layout="column" class="md-whiteframe-z1" layout-padding>
<div layout="row">
<md-checkbox ng-model="userCtrl.filterData.android">
Android
</md-checkbox>
<md-checkbox ng-model="userCtrl.filterData.ios">
iOS
</md-checkbox>
</div>
<div layout="row">
<md-input-container class="md-block">
<label>Email</label>
<input ng-model="userCtrl.filterData.username">
</md-input-container>
</div>
</div>
<md-content flex>
<md-list layout-fill layout-align="center center">
<md-list-item ng-repeat="it in [1,2,3,4,5,6,7,8,9,0]">
<md-button flex> {{it}} </md-button>
</md-list-item>
</md-list>
</md-content>
<md-button ng-click="userCtrl.loadMore()">Carregar Mais...</md-button>
</md-sidenav>
<md-content layout="column" style="background-color:yellow" layout-fill>
<div flex>
Main Content
</div>
</md-content>
反对简化,我删除了一些样式 类。我相信添加它们不会给你带来麻烦。