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

what is MDL

MDL(Material Design Lite)是Google提供的一个css/html框架,同比于boostrap。具有和类似UI框架一样的有点:提供现成的components,支持跨浏览器,支持响应式,提供sass版本等等。它的比较明显的特点有:

1.UI设计扁而不平(其实就是Google各个网站的设计风格,比如:GOOGLE WALLET,GOOGLE DEVELOPERS, Google把这个叫工业化设计。

2.样式遵循BEM规范。BEM 是一种前端项目开发的方法学,由 Yandex 公司提出。BEM 的名称来源于该方法学的三个组成部分的英文首字母,分别是块(Block)、元素(Element)和修饰符(Modifier)。这三个不同的组成部分称为 BEM 实体。这种定义方式十分适合sass编程管理,相关文章:从 BEM 谈大型项目中 CSS 的组织和管理

3.无任何js依赖。BS是依赖jquery的。

4.提供了blog, dashboard等模板,还可以自定义UI整体色调,生成需要加载的css。

MDL相关的网站如下:

官网

组件

安装:

安装指引

首先按照指引,直接DOWNLOAD不下来,应该是Google大陆被和谐了。用git clone了之后,gulp插件安不了老报错,应该是网络问题npm install不全。最后我用npm install material-design-lite --save-dev直接抓下来的。里面去找需要的组件就行了,这个非常的全。

下面是引用的方法:

              Refer to these files by adding a <link> and a <script> element into your HTML pages 
              and also include the Material Icon font:
              <link rel="stylesheet" href="./material.min.css">
              <script src="./material.min.js"></script>
              <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
            

这个icons不是必须的,也不是很好替换,但是可以替换。我下面说缺点的时候会提到

因为用MDL update了我这个blog的模板,所以也可以说说缺点:

1.components太少,至少比BS少。举一个例子,没有轮播图。你只有用其他的插件实现了,去找猫头鹰。当然这个也好也不好,看个人的编码风格了。

2.icon不好替换,如果你不想用Google的icon,我就想用symbol自定义,那么有些icon是用js添加的,开始的时候并不会在dom中出现,所以你也只能用js去替换,比如我就写了如下一段恶心的代码:

              window.addEventListener('load', function(){ 
                  var mdlLayoutDrawerButton = document.querySelectorAll('.mdl-layout__drawer-button');
                  mdlLayoutDrawerButton[0].innerHTML = '<svg class="icon icon-menu"><use xlink:href="#icon-menu"></use></svg>';
              });
            

我之前有过一段时间对MDL的学习,竟然还是在2015年的时候。Material Design Lite 学习

地势坤,君子以厚德载物