pure.css源码解析

本文编写摘录于袁巡的读书分享会,pure源码解析

概述

pure是一个轻量级框架。这类框架的作用就是通过给相应元素添加预设好的class,来快速的实现预设效果。

pure只有短短数千行代码,但是可控拓展,非常实用,对于新手来说,pure是css框架入门的一个比较好的选择。在后期做项目时也可能用到类似于boostrap这样的大型框架。所以前期对于轻量级框架源码的理解是很有帮助的。

本文简单的从三个个性的方面来解析css框架“pure”,分别是

  • 栅格
  • 表单
  • 菜单

栅格

pure主要采用了flex流式布局,具体flex的内容在这里查看http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

使用pure-g就可以将其和其子元素设为flex。。。

而且,使用pure-u-x-y可以轻松的设置栅格的宽度。。。

pure-u-x-y除了宽度样式都是和第一张图中样式一致

Pure栅格默认支持5列和24列

x/y表示的是列数所占比重

像这样。。。。。

image

源码是这样。。。。

image

然后,pure虽然小,但是它是支持响应式布局的,在不同宽度界面下,栅格总宽度是不一样的。。。。

image

给个实例就是这种感觉

image

因为响应式的缘故,后面一张图栅格比较宽。。就换行了。。。变成纵向。。。

好了咱们来看看表单。。。

表单

pure里表单的主要类型是这样的。。。。

image

用这些代码写出了这种感觉。。。

image

感觉很炫酷,代码也不多是吧。。。其实呢。。也就是加了上边框和左边框的阴影,然后设置了圆角而已。。。。。是不是对做出炫酷的表单有信心了。。。

 

 

然后用pure-form-stacked,表单就会变成这样,竖起来。。

image

其实只是给子元素设置成了块元素。。

 

还有这个常见表单pure使用了pure-form-align属性。。下面是未添加样式的。。上面是添加样式的。。。。快想想怎么转变(不要用<tr><td>)。。。

image

其实。。。。这样就就可以了。。

image

是不是很简单。。。而且比<tr><td>舒服多了。。。

然后咱们再看看pure-group,它会将紧密连接的一群表格变成一个总的表格(虽然我觉得改完也不怎么好看)。。。还是想一想,怎么把上面的变成下面的。。

什么?没发现不同?不存在的。。仔细找。。。

image

好吧,其实他把连接的表格宽度变细了。然后圆角变少了。。。。就这点区别也就。。边框变细做的很投机呀。。。

他是把下边框。。。上移了一下。。。

代码是这样

image

菜单

首先来看一下含子菜单的横向菜单。长这样。。代码也在下面。。。

image

//鼠标移动显示下拉菜单
.pure-menu-allow-hover:hover > .pure-menu-child{
    display: block;
    position: absolute;
}
//最开始下拉菜单display:none;
//移动过去时display:block

//子菜单的样式
.pure-menu-children{
    display: none;
    position: absolute;
    //在父级右边,不覆盖父级
    left: 100%;
    //高度和父级一样
    top:0;
    margin: 0;
    padding: 0;
    //层级高
    z-index: 3;
    background-color: #fff;
}


//子菜单移动至下方
.pure-menu-horizontal .pure-menu-children {
    //左侧和父级对齐
    left: 0;
    //高度上不覆盖父级,通过浏览器计算上边缘
    top: auto;
    width: inherit;
}

其实也就是完成了一波,设置为块级然后移动到父元素下方的操作。。。

至于那个小箭头

//实现下拉菜单符号
.pure-menu-horizontal .pure-menu-has-child > .pure-menu-lin:after{
    content: "\25BE";
  //unicode编码
}
content属性与:before和:after伪元素配合使用,来插入生成内容

是通过伪元素实现的,是不是很机智。。。

然后是纵向菜单,比起横向菜单其实就是少了子元素移动到父元素正下方的操作。。。。

image

 

怎么样,其实pure也是一个源码很简单的框架。。。很便捷。还会提供一些css思路。。所以想要了解更多的话。去看看吧~

传送门:https://github.com/yahoo/pure/blob/master/src/forms/css/forms.css

转载于:https://www.cnblogs.com/Taniffer/p/6905068.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值