这是一篇搁置了很久的博文,个人实现的关键代码如下:

// 这是用sass实现的,只是大致实现了网格系统和offset的功能
$size_list: (
xs: 0,
sm: 576,
md: 992,
lg: 1200
); //为col数从1到12的网格分别设置适当的宽度,并且响应式布局为四种size
@each $key, $value in $size_list { @for $i from 1 through 12 { @media (min-width: #{$value}px) {
.col-#{$key}-#{$i} {
width: 100% * ($i / 12);
} .col-#{$key}-offset-#{$i} {
margin-left: 100% * ($i / 12);
}
}
}
}

我的一些思路

  • 其实只要拿占列数去除以栅格总数,就能得到要offset和col的宽度
  • sass很强大,通过遍历,省去了大量的css代码

个人认为待改进的

  • 12不是写死的,而是可以是任意数目
  • boostrapv4是用flex实现的网格系统,考虑渐进增强,旧浏览器用float布局,新浏览器用flex布局
  • boostrapv3源码对栅格系统的功能做了很多分层,按功能划分了很多可复用的mixins,这也是我值得思考的地方

最新文章

  1. dp入门--poj 1163数塔
  2. [Codevs 1421]秋静叶&秋穣子(最大-最小博弈)
  3. mybatis中当实体类的字段名和表结构中的字段名不一致的时候的处理
  4. codevs 2924 数独
  5. Git客户端Windows下的使用
  6. Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
  7. Some good iOS questions
  8. 【3】python核心编程 第六章-序列:字符串、列表和元组
  9. ctype.h库函数
  10. ip完整验证详情
  11. 【Zookeeper】源码分析之服务器(一)
  12. Two 观察者 observer pattern
  13. Linux 查找命令汇总
  14. 初学Socket通信
  15. 采用shell脚本定时清理Tomcat日志
  16. Java编程常见缺陷汇总(一)
  17. javascript基础知识学习
  18. PHP时间类完整实例
  19. 【Java】关于MyBatis框架的总结
  20. Errors running builder 'Faceted Project Validation Builder' on project

热门文章

  1. shell学习第二弹-进阶
  2. Stanford概率图模型: 第一讲 有向图-贝叶斯网络
  3. Memory management in RxSwift – DisposeBag
  4. PhotoZoom Classic 7中的新功能
  5. ARP(地址解析协议)
  6. spring和struts整合
  7. eclipse 去掉Eclipse打开后定期弹出Usage Data Upload对话框
  8. dtd对xml没有起到约束作用
  9. 数据库-mongodb有哪些命令工具
  10. 文件上传前端操作-增加文件与删除文件按钮(jquery实现)