最近研究Pure,发现这个对于写css来说确实是个好的框架,特此总结了一番,如有错误或不足的地方,欢迎交流指点,轻拍。

此文运用的是优雅的Markdown而书

Pure学习笔记

#写在最前

1# Pure简介

  • Pure的所有模块都是基于Normalize.css。Normalize能在一定程度上解决跨浏览器的一致性问题。
  • 我们运用的Pure,其思想就是将你要布局的页面,尽量给网格化,这样复杂的页面在管理起来就更轻松、简单。
  • 内置菜单、表单、表格、基本控件等,方便使用和管理控件
  • 运用Pure自带的样式,以及已定义好的类名,可以调整出更丰富漂亮的控件样式、布局。
  • 运用Pure,可以轻松的将美工图快速的转换成漂亮的页面布局,统一管理你的css,无需再用老旧的方式来管理你的页面,加快你的开发进度。

2# 定制你需要的模块(表单、菜单...):汇总模块与单独模块的加载

3# 扩展你的Pure

  • Pure很人性化的支持你自己对这个框架的扩展,体现在对类名样式的命名上。

    • Pure约定在进行扩展的时候,命名class的规则是以pure-*开头,这样防止和其他已经存在的类名有重复的情况出现。

4# 参考资料

1.开始

  • 首先你需要添加样式,这是基本的样式,当然你也可以在线加载css样式:

      <link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">

2.准备工作

2.1 首页

首页官方给提供一个比较简洁的html开头格式:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your page title</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">
<!--[if lte IE 8] -->
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/grids-responsive-old-ie-min.css">
<!--[if gt IE 8]-->
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/grids-responsive-min.css">
</head>
<body>
<!--Your HTML goes here. Visit purecss.io/layouts/ for some sample HTML code.-->
</body>
</html>
  • 这里是包括各个平台下的不同适配(特指IE浏览器)

3.常用功能

3.1 网格化页面(Grids)

  • 使用:所有的页面根,可以使用class名:.pure-g来定义,定义列使用的class名是:pure-u-*,这里详细说明*的使用方式。

  • 示例3.1:

第一行
第二行第一个
第二行第二个
第二行第三个
第二行第四个
第三行第一个,占三个位置
第三行第二个
  • 为演示,故意加上背景颜色,以便区分不同块占用区域

  • 示例3.1 Code:

      <div class="pure-g">
    <div class="pure-u-1">第一行</div>
    <div class="pure-u-1-4">第二行第一个</div>
    <div class="pure-u-1-4">第二行第二个</div>
    <div class="pure-u-1-4">第二行第三个</div>
    <div class="pure-u-1-4">第二行第四个</div>
    <div class="pure-u-3-4">第三行第一个,占三个位置</div>
    <div class="pure-u-1-4">第三行第二个</div>
    </div>

    可以理解为:pure-u-x-y,y代表一共要占用的一行的总额数,x代表在总个数中要占用多少个。

    再比如定义的pure-u-1-2,每个元素占用的宽度就是50%;pure-u-1-5,每个元素占用的宽度就是20%。

  • 这里Pure为我们定义了很好的尺寸标签,就是我们可以通过标签的不同,控制网格的大小:例如.pure-u-md-1-4

  • 表格1

    Key|CSS Media Query|Applies|Classname

    -|-|-|-

    None|None|Always|pure-u-*

    sm|@media screen and (min-width:35.5em)|>=568px|pure-u-sm-*

    md|@media screen and (min-width:48em)|>=768px|pure-u-md-*

    lg|@media screen and (min-width:64em)|>=1024px|pure-u-lg-*

    xl|@media screen and (min-width:80em)|>=1280px|pure-u-xl-*

  • **这里定义的em单位,在与px单位进行换算的值是:1em == 16px 。如要了解em与px区别,参考链接: CSDN博客-em与px区别 **

3.2 表单(form)

3.2.1 自然横向表单 (.pure-form)

  • 使用:<form>标签中添加class为.pure-form

  • 示例3.2.1:

横向自然表单示例

Remember me

Sign in

  • 示例3.2.1 Code:

      <form class="pure-form">
    <fieldset>
    <legend>A compact inline form</legend>
    <input type="email" placeholder="Email">
    <input type="password" placeholder="Password">
    <label for="remember">
    <input id="remember" type="checkbox"> Remember me
    </label>
    <button type="submit" class="pure-button pure-button-primary">Sign in</button>
    </fieldset>
    </form>

3.2.2 纵向堆叠表单 (.pure-form .pure-form-stacked)

  • 使用:<form>标签中添加class为pure-form pure-form-stacked这里注意一定要同时写两个class!

  • 示例3.2.2:

纵向堆叠表单示例

Remember me

Sign in

  • 示例3.2.2 Code:

      <form class="pure-form pure-form-stacked">
    <fieldset>
    <legend>纵向堆叠表单示例</legend>
    <input type="email" placeholder="Email">
    <input type="password" placeholder="Password">
    <label for="remember">
    <input id="remember" type="checkbox"> Remember me
    </label>
    <button type="submit" class="pure-button pure-button-primary">Sign in</button>
    </fieldset>
    </form>
  • 还有其他方式的form,复杂表格形式、紧凑分组型形式,用途很少。详细参见Pure.io-form使用

3.3 输入框(Input)

3.3.1 普通输入框(.pure-input-*)

  • 使用:普通输入框支持宽度尺寸的定义,可以使用.pure-input-*的class名。

  • 示例3.3.1:

  • 不难看出,输入框可以定义不同大小,尺寸参照上面有个表格1

  • 示例3.3.1 Code:

      <form class="pure-form">
    <input class="pure-input-1" type="text" placeholder="我是输入框1">
    <input class="pure-input-md-1" type="text" placeholder="我是输入框2">
    </form>
  • 当然你也可以参照上面3.1网格布局,来布局你的input控件

3.3.2 请求类输入框(required)

  • 使用:<input>标签内部加上required字段即可。

  • 示例3.3.2:

  • 示例3.3.2 Code: 参考以上(3.3.2)代码

3.3.3 不可用输入框(disabled)

  • 使用:<input>标签内部加上disabled字段即可。

  • 示例3.3.3:

  • 示例3.3.3 Code: 参考以上(3.3.2)代码

3.3.4 只读类型输入框(readonly)

  • 使用:<input>标签内部加上readonly字段即可。

  • 示例3.3.4:

  • 示例3.3.4 Code: 参考以上(3.3.2)代码

3.3.5 圆角类型输入框(.pure-input-rounded)

  • 使用: class名为pure-input-rounded即可

  • 示例3.3.5:

  • 示例3.3.5 Code

      <form class="pure-form">
    <input class="pure-input-rounded" type="email" placeholder="圆角类型的email输入框">
    </form>

3.3.6 单选框与复选框(.pure-radio .pure-checkbox)

  • 使用: class名为pure-radio pure-checkbox即可

  • 示例3.3.6:

这是复选框

这是单选框1

这是单选框2

  • 示例3.3.6 Code:

      <form class="pure-form">
    <label for="option-one" class="pure-checkbox">
    <input id="option-one" type="checkbox" value="">
    这是复选框
    </label>
    <label for="option-two" class="pure-radio">
    <input id="option-two" type="radio" name="optionsRadios" value="option1" checked>
    这是单选框1
    </label>
    <label for="option-three" class="pure-radio">
    <input id="option-three" type="radio" name="optionsRadios" value="option2">
    这是单选框2
    </label>
    </form>

3.4 按钮(Button)

3.4.1 默认按钮(.pure-button)

  • 使用: class名为pure-button即可

  • 示例3.4.1:

按钮1
按钮2

  • 示例3.4.1 Code:

      <form class="pure-form">
    <a class="pure-button" href="#">按钮1</a>
    <button class="pure-button">按钮2</button>
    </form>

3.4.2 不可点击按钮(.pure-button .pure-button-disabled)

  • 使用: class名为pure-button pure-button-disabled即可,这里注意一定要同时写两个class!

  • 示例3.4.2:

按钮1
按钮2

  • 示例3.4.2 Code:

      <form class="pure-form">
    <a class="pure-button pure-button-disabled" href="#">按钮1</a>
    <button class="pure-button pure-button-disabled">按钮2</button>
    </form>

3.4.3 主要点击引导按钮(.pure-button .pure-button-primary)

  • 使用: class名为pure-button pure-button-primary即可,这里注意一定要同时写两个class!

  • 示例3.4.3:

按钮1
按钮2

  • 示例3.4.3 Code: 参考3.4.2示例代码。

  • 当然这里还有很多的button样式。照详细参见Pure.io-buttons使用

3.5 表格(Tables)

3.5.1 默认列表(.pure-table)

  • 使用: class名为pure-table 即可

  • 示例3.5.1:

    编号 名字 年龄 性别
    1 张三 21
    2 李四 14
  • 示例3.5.1 Code:

      <table class="pure-table">
    <thead>
    <tr>
    <th>编号</th>
    <th>名字</th>
    <th>年龄</th>
    <th>性别</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>1</td>
    <td>张三</td>
    <td>21</td>
    <td>男</td>
    </tr>
    <tr>
    ...
    </tr>
    </tbody>
    </table>

3.5.2 有边界列表(.pure-table .pure-table-bordered)

  • 使用: class名为pure-table pure-table-bordered 即可,这里注意一定要同时写两个class!

  • 示例3.5.2:

    编号 名字 年龄 性别
    1 张三 21
    2 李四 14
  • 示例3.5.2 Code: 参考以上(3.5.1)代码

3.5.3 横向水平线列表(.pure-table .pure-table-horizontal)

  • 使用: class名为pure-table pure-table-horizontal 即可,这里注意一定要同时写两个class!

  • 示例3.5.3:

    编号 名字 年龄 性别
    1 张三 21
    2 李四 14
  • 示例3.5.3 Code: 参考以上(3.5.2)代码

3.5.4 彩条分割默认列表(.pure-table-odd)

  • 使用: 在行标签内,添加pure-table-odd

  • 示例3.5.4:

    编号 名字 年龄 性别
    1 张三 21
    2 李四 14
  • 示例3.5.4 Code:

      <form class="pure-form">
    <ul>
    <table class="pure-table">
    <thead>
    <tr>
    <th>编号</th>
    <th>名字</th>
    <th>年龄</th>
    <th>性别</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>1</td>
    <td>张三</td>
    <td>21</td>
    <td>男</td>
    </tr>
    <tr class="pure-table-odd">
    <td>2</td>
    <td>李四</td>
    <td>14</td>
    <td>男</td>
    </tr>
    </tbody>
    </table>
    </ul>
    </form>

3.6 菜单(Menus)

  • 这里比较常见的就是菜单选中状态和菜单标头。这里举例说明代码的使用方式,详见下面的具体例子里,包括了具体使用时的样式。

    • 菜单选中状态:即在选中状态标签内的class添加pure-menu-selected即可

      示例:

      <li class="pure-menu-selected" style="background:#1f8dd6"><a href="#">文件</a></li>
    • 菜单标头:即在菜单的最前段(后端)或者最上端(下端),添加标题,在标签内class添加pure-menu-heading即可

      示例:

      <a class="pure-menu-heading">Yahoo! Sites</a>

3.6.1 横向自然菜单(.pure-menu .pure-menu-open .pure-menu-horizontal)

  • 使用: 可以用<div>标签,在内部添加class名为pure-menu pure-menu-open pure-menu-horizontal 即可

  • 示例3.6.1:

  • 示例3.6.1 Code:

      <a class="pure-menu-heading">标头位置1</a>
    <div class="pure-menu pure-menu-open pure-menu-horizontal">
    <a class="pure-menu-heading">标头位置2</a>
    <ul>
    <li><a href="#">首页</a></li>
    <li class="pure-menu-selected" style="background:#1f8dd6"><a href="#">文件</a></li>
    <li><a href="#">信息</a></li>
    <li><a href="#">设置</a></li>
    </ul>
    <a class="pure-menu-heading">标头位置3</a>
    </div>

3.6.2 纵向自然菜单(.pure-menu .pure-menu-open)

  • 使用: 不难看出,总系那个自然菜单比横向自然菜单少的就是.pure-menu-horizontal这个class。

  • 示例3.6.2:

  • 示例3.6.2 Code: 参见示例3.6.1,去掉class .pure-menu-horizontal 即可。

  • 还有其他形式的菜单布局,详情参见 Pure.io-Menus使用

4.皮肤管理

  • Pure为我们提供了很好的在线系列皮肤生成工具,可以通过可视化的页面,来调整各个组件按钮的颜色、风格。加快我们开发速度。而且也易于应用。

  • 在线编辑工具链接

  • 举例说明:

    • 比如我们已经在在线工具上选好了风格,在上面菜单栏里找到Code 菜单,然后就能看Pure为我我们生成好的css代码,copy进你的css文件内即可。应用方式如下:

        <div class="pure-skin-mine">
      <input class="pure-button" type="button" value="click me"/>
      <form class="pure-form">
      <fieldset>
      <legend>输入内容</legend>
      <input type="email" placeholder="input your email">
      <input type="password" placeholder="input your email">
      <button class="pure-button pure-button-primary" type="submit">sign in</button>
      </fieldset>
      </form>
      </div>

    这里一定要注意的是,我们命名class一定要按照Pure定义的规则来命名,这样你的css才能应用上。

  • 运用Pure提供的皮肤管理器批量管理css的演示:(模仿微信公众平台的界面)

    • demo1:

    • demo2:

      |

pure学习笔记的更多相关文章

  1. KnockoutJs学习笔记(五)

    作为一名初学者来说,一篇篇的按顺序看官网上的文档的确是一件很痛苦的事情,毕竟它的排列也并非是由浅及深的排列,其中的顺序也颇耐人寻味,于是这篇文章我又跳过了Reference部分,进而进入到具体的bin ...

  2. V-rep学习笔记:Reflexxes Motion Library 3

    路径规划 VS 轨迹规划 轨迹规划的目的是将输入的简单任务描述变为详细的运动轨迹描述.注意轨迹和路径的区别:Trajectory refers to a time history of positio ...

  3. V-rep学习笔记:机器人模型创建3—搭建动力学模型

    接着之前写的V-rep学习笔记:机器人模型创建2—添加关节继续机器人创建流程.如果已经添加好关节,那么就可以进入流程的最后一步:搭建层次结构模型和模型定义(build the model hierar ...

  4. Effective STL 学习笔记 39 ~ 41

    Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  5. 《Think Python》第16章学习笔记

    目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...

  6. amazeui学习笔记--css(布局相关1)--网格Grid

    amazeui学习笔记--css(布局相关1)--网格Grid 一.总结 基本使用 1.div+class布局:amaze里面采取的就是div+class的布局方式  <div class=&q ...

  7. amazeui学习笔记--css(HTML元素3)--表单Form

    amazeui学习笔记--css(HTML元素3)--表单Form 一.总结 1.form样式使用:在容器上添加 .am-form class,容器里的子元素才会应用 Amaze UI 定义的样式. ...

  8. amazeui学习笔记--css(布局相关3)--辅助类Utility

    amazeui学习笔记--css(布局相关3)--辅助类Utility 一.总结 1.元素清除浮动: 添加 am-cf 这个 class 即可 2.水平滚动: .am-scrollable-horiz ...

  9. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...

随机推荐

  1. c++游戏编程书籍

    如果要自学游戏程序开发的话,可以看看下面的,呵呵. 游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦):  1.Gamebryo 2.2游戏引擎(盛大.腾 ...

  2. 神器之“c#反编译工具“

    1. ".net reflector"本人正在使用,下载地址 2."ILSpy"没实用过,可是听杨中科老师说挺好. 有了这个,妈妈再也不用操心我看不到别人封装好 ...

  3. Python之美[从菜鸟到高手]--生成器之全景分析

    yield指令,可以暂停一个函数并返回中间结果.使用该指令的函数将保存执行环境,并且在必要时恢复. 生成器比迭代器更加强大也更加复杂,需要花点功夫好好理解贯通. 看下面一段代码: def gen(): ...

  4. 假设说这个世界不是真实存在的,仅仅是一段代码,迄今为止你发现了哪些bug?

    给这个世界写代码的不是一个人,而是一个团队(这么大的项目,一个人开发不了).并且严重怀疑这个一个开源项目.开发人员被我们觉得是神,所以一神论是不正确的,众神论才是真理,且凡人是有机会成为神的(參悟神道 ...

  5. android 抽屉式滑动demo

    下载地址:https://github.com/asijack/AndroidDrawerDemo 直接上效果图如下: 是不是还不错的样子. 先看看布局文件吧 <android.support. ...

  6. grivid中切换按钮,两个按钮交替

    给grivdView不要设值 button的url和 commandName 在rowDatabound中操作变换 protected void GVData_RowDataBound(object ...

  7. 如何利用Github Pages展示自己写的项目

    接触github很久了,自己搭建过hexo博客,但是对于web项目托管github pages感觉很懵,所以在此总结分享给有需要的亲们. 教程开始: 1.创建一个新库 2.给库命名 3.创建新库后点击 ...

  8. iis 目录枚举文件枚举解决方案

    1.关闭windows的8.3格式功能. 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改NtfsD ...

  9. BZOJ 4311: 向量( 按时间分治 + 线段树 )

    离线, 然后按时间分治, 每个向量都有出现时间[l, r], 直接插入时间线段树(一个向量只会影响O(logN)数量级的线段树节点). 在线段树每个节点弄出凸壳然后二分. 时间复杂度O(Nlog^2N ...

  10. BZOJ 1212: [HNOI2004]L语言( dp + trie )

    因为单词很短...用trie然后每次dp暴力查找...用哈希+dp应该也是可以的.... ------------------------------------------------------- ...