[DIV/CSS] 认识一下 Material Design Lite 布局组件

本文介绍Material Design Lite (MDL)的布局组件用法,包括如何使用布局、头部、导航、选项卡及侧拉菜单等特性,并提供代码示例。

一、布局/Layout

MDL的布局/Layout组件用来作为整个页面其他元素的容器,可以自动适应不同的浏览器、 屏幕尺寸和设备。

布局/Layout组件需要按特定的HTML结构进行声明:

  1. <any class="mdl-layout mdl-js-layout">
  2. <any class="mdl-layout__header">...</any>
  3. <any class="mdl-layout__drawer">...</any>
  4. <any class="mdl-layout__content">...</any>
  5. </any>
  6. http://www.kmrlyy.com/cnmxf/33508.html
复制代码

需要指出的是,在一个布局声明中,header等子元素不一定全部使用,比如你可以不要 侧栏菜单:

  1. <any class="mdl-layout mdl-js-layout">
  2. <any class="mdl-layout__header">...</any>
  3. <any class="mdl-layout__content">...</any>
  4. </any>
复制代码

布局组件简化了创建可伸缩页面的过程。确切的说,MDL可以根据屏幕的尺寸设定样式类 的不同显示效果:

桌面——当屏幕宽度大于840px时,MDL按桌面环境应对

平板——当屏幕尺寸大于480px,但小于840px时,MDL按平板环境应对。比如,自动隐藏 header、drawer区域等

手机——当屏幕尺寸小于480px时,MDL按手机环境应对

配置选项

MDL class说明
mdl-layout声明元素为布局组件
mdl-js-layout为布局实现基本的行为逻辑
mdl-layout__header声明元素为布局头/header元素
mdl-layout__drawer声明元素为侧栏菜单/drawer元素
mdl-layout__content声明元素为布局内容/content元素
mdl-layout--fixed-drawer将侧栏菜单/drawer声明为固定式
mdl-layout--fixed-header将头部/header声明为固定式
mdl-layout--large-screen-only在小尺寸屏幕上隐藏头部/header
mdl-layout--overlay-drawer-button为布局添加激活侧栏菜单按钮

二、头部/Header

布局组件的header子元素由一系列header-row组成:

配置选项

MDL class说明
mdl-layout__header-row声明元素为行容器
mdl-layout-title声明元素为标题
mdl-layout-icon声明元素为菜单图标
mdl-layout-spacer声明元素自动填充行容器剩余空间
mdl-layout__header--transparent声明布局头为透明背景
mdl-layout__header--scroll声明布局头为可滚动
mdl-layout__header--waterfall对多行标题,当滚动内容时,仅显示第一行

三、头部 - 导航/Navigatoin

在header子元素内可以使用导航/navigation,导航块由一个导航容器 和若干导航链接构成:

  1. <div class="mdl-layout__header-row">
  2. <!--导航容器-->
  3. <nav class="mdl-navigation">
  4. <!--导航链接-->
  5. <a href="...">link</a>
  6. <a href="...">link</a>
  7. <a href="...">link</a>
  8. </nav>http://www.kmrlyy.com/niaodaoyan/33509.html
  9. </div>
复制代码

如上例所示,导航块使用nav元素建立。在头部的导航块自动按水平排列各 链接项。

一个常见的UI模式是标题居左,导航居右,如下图所示:

mdl-layout-spacer可以自动地填充行容器(mdl-layout__header-row) 的剩余空间(扣除title和navigation的宽度),因此可以简单地实现为:

  1. <div class="mdl-layout__header-row">
  2. <span class="mdl-layout-title">title</span>
  3. <div class="mdl-layout-spacer"></div>
  4. <nav class="mdl-navigation">...</nav>
  5. </div>http://www.kmrlyy.com/fujianyan/33510.html
复制代码

配置选项

MDL class说明
mdl-navigation声明元素为MDL导航组
mdl-navigation__link声明锚点元素为MDL导航链接

四、头部 - 选项卡/Tabs

在布局的头部可以嵌入选项栏/tab-bar,内容区域可以嵌入选项面板/tab-panel。当用户点击 选项栏中的链接/tab*时,自动显示对应的选项面板:

在布局头部声明选项栏,需要遵循特定的HTML结构:

  1. <header class="mdl-layout__header">
  2. <!--声明选项栏-->
  3. <div class="mdl-layout__tab-bar">
  4. <!--声明选项,通过href绑定对应的面板,对要激活的选项声明is-active-->
  5. <a href="#panel-1" class="mdl-layout__tab is-active">tab-1</a>
  6. <a href="#panel-2" class="mdl-layout__tab">tab-2</a>
  7. <a href="#panel-3" class="mdl-layout__tab">tab-3</a>
  8. </div>http://www.kmrlyy.com/gongjingmilan/33511.html
  9. </header>
复制代码

在布局的内容区域声明选项面板,也依赖于特定的HTML结构:

  1. <main class="mdl-layout__content">
  2. <!--声明选项面板,使用id属性指定锚点,对要初始显示的面板声明is-active-->
  3. <div class="mdl-layout__tab-panel is-active" id="panel-1">...</div>
  4. <div class="mdl-layout__tab-panel" id="panel-2">...</div>
  5. <div class="mdl-layout__tab-panel" id="panel-3">...</div>
  6. </main>
复制代码

配置选项

MDL class说明
mdl-layout__tab-bar声明元素为选项栏
mdl-layout__tab声明锚点元素为选项链接
mdl-layout__tab-panel声明元素为选项面板
is-active将选项链接/tab或选项面板/tab-panel声明为激活
mdl-layout--fixed-tabs将头部tab条声明为固定式

五、侧拉菜单/Drawer

侧拉菜单默认情况下是隐藏的,需要用户点击按钮:

可以设置修饰样式类mdl-layout--fixed-drawer来强制显示侧拉菜单(在小尺寸 屏幕下,侧拉菜单总是隐藏的):

  1. <div class="mdl-layout mdl-layout--fixed-drawer">
  2. <div class="mdl-layout__drawer">...</div>
  3. </div>www.kmrlyy.com
复制代码

在侧拉菜单中也可以使用导航,这时所有的链接自动按垂直方向排列:

  1. <div class="mdl-layout__drawer">
  2. <nav class="mdl-navigation">
  3. <a href="..." class="mdl-navigation__link">link 1</a>
  4. <a href="..." class="mdl-navigation__link">link 2</a>
  5. </nav>
  6. </div>
复制代码

配置选项

MDL class说明
mdl-layout__drawer声明元素为侧栏菜单/drawer元素
mdl-layout-title声明元素为标题
mdl-navigation声明元素为MDL导航组
mdl-navigation__link声明锚点元素为MDL导航链接
mdl-layout--fixed-drawer将侧栏菜单/drawer声明为固定式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值