天行健, 君子以自强不息
Sunny's Blog
Title

Material Design Lite 学习(持续更新)

Material Design Lite---Google 推出的新的html/css框架

Material Design Lite github项目地址,Material Design 设计风格核心是:扁而不平。

我学习mdl目前也就是不到一周的时间,并且只是做了各个组件的demo,还没有在实际的项目中用到,并且他的网站现在是访问不到的,我是下了源码看readme,并且在汇智网中进行了一个初步学习。

我用过的hc框架目前不外乎boostrap和bourbon两种,和这两种相比我觉得mdl更加的智能化(或者说,更加降低了页面编写的难度,很多组件都集成的很好了,你只要粘粘粘),符合这种风格的页面用mdl会非常的快,而且他的样式遵循BEM标准,很有大公司的范儿。它提供sass版本(bs官方是从V4才开始提供的),栅格的运用上偏bs,没有bourbon的自定义,组件比bs要多一些。

下面是一些mdl常用的类和例子,以后有机会我一定会用,会不断更新的


                class:
                mdl-shadow--16dp      阴影,视觉靠前,有效取值为:2/3/4/6/8/16
                mdl-color--red-300    背景色
                mdl-color-text--grey-50  文字颜色
                mdl-js-ripple-effect 按钮效果

                1.布局/Layout
                MDL class   说明
                mdl-layout  声明元素为布局组件
                mdl-js-layout   为布局实现基本的行为逻辑
                mdl-layout__header  声明元素为布局头/header元素
                mdl-layout__drawer  声明元素为侧栏菜单/drawer元素
                mdl-layout__content 声明元素为布局内容/content元素

                mdl-layout--fixed-drawer    将侧栏菜单/drawer声明为固定式 yes
                在1024会隐藏,大于的时候可以显示,这个可以用到不要header的时候

                mdl-layout--fixed-header    将头部/header声明为固定式 yes
                小于1024会隐藏

                mdl-layout--large-screen-only   在小尺寸屏幕上隐藏头部/header
                mdl-layout--overlay-drawer-button   为布局添加激活侧栏菜单按钮

                <any class="mdl-layout mdl-js-layout">
                    <any class="mdl-layout__header">...</any>
                    <any class="mdl-layout__drawer">...</any>
                    <any class="mdl-layout__content">...</any>
                </any>


                2.头部/Header
                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   对多行标题,当滚动内容时,仅显示第一行 yes

                <header class="mdl-layout__header">
                    <div class="mdl-layout__header-row">
                        <span class="mdl-layout-title">title</span>
                        <div class="mdl-layout-spacer"></div>
                        <span class="material-icons">mail link report</span>
                    </div>
                </header>

                2-1.头部 - 导航/Navigatoin
                MDL class   说明
                mdl-navigation  声明元素为MDL导航组
                mdl-navigation__link    声明锚点元素为MDL导航链接

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


                3.侧拉菜单/Drawer
                MDL class   说明
                mdl-layout__drawer  声明元素为侧栏菜单/drawer元素
                mdl-layout-title    声明元素为标题
                mdl-navigation  声明元素为MDL导航组
                mdl-navigation__link    声明锚点元素为MDL导航链接
                mdl-layout--fixed-drawer    将侧栏菜单/drawer声明为固定式


                4.单行页脚/Mini footer
                MDL class   说明
                mdl-mini-footer 声明元素为单行页脚组件
                mdl-mini-footer--left-section   声明元素为左区域容器
                mdl-mini-footer--right-section  声明元素为右区域容器
                mdl-logo    声明元素为logo区
                mdl-mini-footer--link-list  声明元素为链接容器
                mdl-mini-footer--social-btn 声明元素为36px大小的方块区域


                5.多行页脚/Mega footer
                MDL class   说明
                mdl-mega-footer 声明元素为多行页脚组件
                mdl-mega-footer--top-section    声明元素为顶部区域
                mdl-mega-footer--middle-section 声明元素为中部区域
                mdl-mega-footer--bottom-section 声明元素为底部区域
                mdl-mega-footer--left-section   声明元素在容器内居左
                mdl-mega-footer--right-section  声明元素在容器内居右
                mdl-mega-footer--drop-down-section  声明元素为垂直内容区
                mdl-mega-footer--link-list  声明元素为链接容器
                mdl-mega-footer--heading    声明元素为标题
                mdl-logo    声明元素为logo区
                mdl-mega-footer--social-btn 声明元素为36px正方大小


                6.栅格/Grid
                MDL class   说明
                mdl-grid    将元素声明为grid组件
                mdl-cell    将元素声明为grid组件的单元格cell
                mdl-cell--N-col 设置单元格宽为N(1-12),默认为4。可选
                mdl-cell--N-col-desktop 在桌面环境下设置单元格宽为N(1-12)。可选
                mdl-cell--N-col-tablet  在平板环境下设置单元格宽为N(1-8)。可选
                mdl-cell--N-col-phone   在手机环境下设置单元格宽为N(1-4)。可选
                mdl-cell--hide-desktop  在桌面环境下隐藏该单元格 。可选
                mdl-cell--hide-tablet   在平板环境下隐藏该单元格。可选
                mdl-cell--hide-phone    在手机环境下隐藏该单元格。可选
                mdl-cell--stretch   在垂直方向拉伸单元格以充满父元素。 这是单元格的默认值
                mdl-cell--top   在垂直方向单元格顶部对齐。可选
                mdl-cell--middle    在垂直方向单元格居中对齐。可选
                mdl-cell--bottom    在垂直方向单元格底部对齐。可选


                7.选项卡/Tabs
                MDL class   功能
                mdl-tabs    将元素声明为tabs组件
                mdl-js-tabs 实现tabs组件的基本逻辑
                mdl-tabs__tab-bar   将元素声明为tabs组件的导航条容器
                mdl-tabs__tab   将链接元素声明为tabs组件的tab页触发器
                mdl-tabs__panel 将元素声明为tabs组件的tab页内容面板
                is-active   将tab页内容面板或tab页触发器设置为活动状态
                mdl-js-ripple-effect    为tab页触发器增加点击时水纹效果。可选 yes



                8.卡片/Cards
                MDL class   说明
                mdl-card    应用在外层容器,声明元素为卡片
                mdl-card--border    为区域增加顶部边框,应用于actions区域和title区域
                mdl-shadow--Ndp 为卡片添加N(2~8)dp的阴影,应用在外层容器
                mdl-card__title 声明容器为卡片标题区域,应用在内层容器
                mdl-card__title-text    为卡片标题设置合适的样式,应用在卡片标题区域的h1~h6
                mdl-card__subtitle-text 为卡片子标题设置合适的样式
                mdl-card__media 声明容器为卡片媒体区域,应用在内层容器
                mdl-card__supporting-text   声明容器为卡片正文区域,应用在内层容器
                mdl-card__actions   声明容器为卡片正文区域,应用在内层容器
                mdl-card__menu  声明元素为卡片菜单按钮区
                mdl-card--expand    声明区域的flex-grow为1,使区域自动增长以填充卡片剩余空间
                修改示例代码,设置卡片宽度为520

                <any class="mdl-card">
                    <any class="mdl-card__title">...</any>
                    <any class="mdl-card__media">...</any>
                    <any class="mdl-card__supporting-text">...</any>
                    <any class="mdl-card__actions">...</any>
                    <any class="mdl-card__menu">...</any>
                </any>


                9.徽章/Badge
                MDL class   说明
                mdl-badge   声明当前元素为MDL徽章组件
                mdl-badge--no-background    声明徽章组件不使用背景色
                data-badge  徽章组件使用宿主元素上这个属性值来设置显示内容
                <any class="mdl-badge" data-badge="1">...</any>


                10.提示框/Tooltip
                MDL class   说明
                mdl-tooltip 声明元素为MDL提示框组件
                mdl-tooltip--large  为MDL提示框组件应用大字体(14px)
                <!--1. 为宿主元素定义一个id -->
                <button id="test">TEST</button>
                <!--2. 声明一个tooltip组件,使用*for*属性绑定到宿主元素上,可以用html-->
                <div class="mdl-tooltip" for="test">这个按钮没什么用;-(</div>


                11.按钮/Button
                MDL按钮的显示类型包括:flat, raised, fab, mini-fab, icon. 这些类型 都可以设置为浅灰或彩色,也可以禁止。fab, mini-fab和icon类型的按钮通常 使用一个小图像而不是文字来表征其功能。
                使用按钮组件很简单,为button元素声明mdl-button、mdl-js-button及 其他可选的修饰样式类即可:

                MDL class   说明
                mdl-button  将元素声明为MDL按钮组件
                mdl-js-button   为按钮添加基本的行为逻辑
                mdl-button--raised  为按钮应用凸起效果
                mdl-button--fab 将按钮设置为圆形,直径56px
                mdl-button--mini-fab    将fab按钮设置为原型,直径40px。
                mdl-button--icon    为按钮应用图标效果,直径32px
                mdl-button--colored 为按钮应用色彩,使用强调色
                mdl-button--primary 为按钮应用基准色
                mdl-button--accent  为按钮应用强调色
                mdl-js-ripple-effect    为点击动作应用水纹效果


                12.菜单/Menus
                MDL class   说明
                mdl-button  声明元素为按钮组件
                mdl-js-button   为按钮组件添加基本的逻辑
                mdl-button--icon    使按钮适配图标显示
                material-icons  声明元素为图标
                mdl-menu    声明元素为菜单组件
                mdl-menu__item  声明元素为菜单项
                mdl-js-ripple-effect    为点击动作添加水纹效果
                mdl-menu--top-left  在按钮之上显示菜单,菜单左边框与按钮对齐
                mdl-menu--top-right 在按钮之上显示菜单,菜单右边框与按钮对齐
                mdl-menu--bottom-left   在按钮之下显示菜单,菜单左边框与按钮对齐
                mdl-menu--bottom-right  在按钮之下显示菜单,菜单右边框与按钮对齐
                <any class="mdl-menu mdl-js-menu">
                    <any class="mdl-menu__item">...</any>
                    <any class="mdl-menu__item">...</any>
                </any>


                13.滑动条/Sliders
                MDL class   说明
                mdl-slider  声明元素为滑动条组件
                mdl-js-slider   为滑动条添加基本的行为逻辑

                <input type="range" min="0" max="100" class="mdl-slider mdl-js-slider">


                14.复选按钮/Checkbox
                MDL class   说明
                mdl-checkbox    声明元素为复选按钮
                mdl-js-checkbox 为复选按钮添加基本的行为逻辑
                mdl-checkbox__input 为组件的input子元素使用此样式
                mdl-checkbox__label 为组件的label子元素使用此样式
                mdl-js-ripple-effect    为点击动作添加水纹效果


                15.单选按钮/Radio button
                MDL class   说明
                mdl-radio   声明元素为单选按钮
                mdl-js-radio    为单选按钮添加基本的行为逻辑
                mdl-radio__button   为input元素声明此样式
                mdl-radio__label    为label元素声明此样式
                mdl-js-ripple-effect    为点击动作应用水纹效果


                16.图标开关/Icon toggle
                MDL class   说明
                mdl-icon-toggle 声明元素为图标开关
                mdl-js-icon-toggle  为图标开关添加基本的行为逻辑
                mdl-icon-toggle__input  为input元素声明此样式
                mdl-icon-toggle__label  为label元素声明此样式
                mdl-js-ripple-effect    为点击动作添加水纹效果



                17.进度条/Progress bar
                MDL class   说明
                mdl-progress    声明元素为进度条组件
                mdl-js-progress 为进度条组件添加基本的行为逻辑
                mdl-progress__indeterminate 为元素应用动画效果。可选


                18.等待指示器/Spinner
                MDL class   说明
                mdl-spinner 声明元素为spinner组件
                mdl-js-spinner  为spinner增加基本的行为逻辑
                is-active   显示spinner组件并激活动画
                mdl-spinner--single-color   只使用单一色彩


                19.文本输入/Text Field
                MDL class   说明
                mdl-textfield   声明元素为文本输入组件
                mdl-js-textfield    为文本输入组件添加基本的行为逻辑
                mdl-textfield__input    为input元素应用此样式
                mdl-textfield__label    为label元素应用此样式
                mdl-textfield--floating-label   为文本输入组件应用浮动标签效果
                mdl-textfield__error    声明span元素为MDL错误信息容器


                20.文本输入 - 动态展开式
                MDL class   说明
                mdl-textfield--expandable   声明元素为可展开文本输入组件
                mdl-input__expandable-holder    声明元素为文本输入元素的容器


                21.数据表/Data table
                MDL class   说明
                mdl-data-table  声明元素为数据表组件
                mdl-js-data-table   为数据表添加基本的行为逻辑
                mdl-data-table--selectable  为数据表的每一条记录添加复选按钮,应用在table元素上
                mdl-data-table__cell--non-numeric   声明单元格内容非数字,使单元格文字左对齐

            
地势坤,君子以厚德载物