CSS:用Less实现栅格系统

背景

公司一直没有专职的前端和美工,Javascript相对来说我熟悉一点,CSS+HTML有四五年没有搞过了,最近要学一下,招聘或和美工配合的时候会有用处。

收集的资料

知识总结

  • CSS盒子模型:定位和浮动。
  • CSS继承模型:这部分可以边用边记。
  • CSS层叠模型:这部分要记清楚。

最好的教程就是官方教程

栅格系统实战

less

  1. 1 @grid_margin: 20px;
  2. 2 @grid_length: 12;
  3. 3 @unit: 1px;
  4. 4
  5. 5 .row {
  6. 6 margin-left: -@grid_margin;
  7. 7 *zoom: 1;
  8. 8 }
  9. 9
  10. 10 [class*="span"] {
  11. 11 float: left;
  12. 12 min-height: 1px;
  13. 13 margin-left: @grid_margin;
  14. 14 }
  15. 15
  16. 16 .span (@length) when (@length > 0) {
  17. 17 .span@{length} {
  18. 18 width: (@length * 60 + (@length - 1) * 20) * @unit;
  19. 19 }
  20. 20
  21. 21 .span(@length - 1);
  22. 22 }
  23. 23
  24. 24 .span (0) {}
  25. 25
  26. 26 .span (@grid_length);
  27. 27
  28. 28 .offset (@length) when (@length > 0) {
  29. 29 .offset@{length} {
  30. 30 margin-left: (@length * 60 + (@length + 1) * 20) * @unit;
  31. 31 }
  32. 32
  33. 33 .offset(@length - 1);
  34. 34 }
  35. 35
  36. 36 .offset (0) {}
  37. 37
  38. 38 .offset (@grid_length);
  39. 39
  40. 40
  41. 41 @grid_margin_percent: (1 / (@grid_length * 4 - 1));
  42. 42
  43. 43 .row-fluid {
  44. 44 width: 100%;
  45. 45 *zoom: 1;
  46. 46 }
  47. 47
  48. 48 .row-fluid [class*="span"]:first-child {
  49. 49 margin-left: 0;
  50. 50 }
  51. 51
  52. 52 .row-fluid [class*="span"] {
  53. 53 display: block;
  54. 54 float: left;
  55. 55 min-height: 30px;
  56. 56 margin-left: percentage(@grid_margin_percent);
  57. 57 -webkit-box-sizing: border-box;
  58. 58 -moz-box-sizing: border-box;
  59. 59 box-sizing: border-box;
  60. 60 }
  61. 61
  62. 62 .fluid_span (@length) when (@length > 0) {
  63. 63 .row-fluid .span@{length} {
  64. 64 width: percentage((@length * 4 - 1) * @grid_margin_percent);
  65. 65 }
  66. 66
  67. 67 .fluid_span(@length - 1);
  68. 68 }
  69. 69
  70. 70 .fluid_span (0) {}
  71. 71
  72. 72 .fluid_span (@grid_length);
  73. 73
  74. 74 .fluid_offset (@length) when (@length > 0) {
  75. 75 .row-fluid .offset@{length} {
  76. 76 margin-left: percentage((@length * 4 + 1) * @grid_margin_percent);
  77. 77 }
  78. 78
  79. 79 .fluid_offset(@length - 1);
  80. 80 }
  81. 81
  82. 82 .fluid_offset (0) {}
  83. 83
  84. 84 .fluid_offset (@grid_length);

html

  1. <div class="row">
  2. <div class="span3"></div>
  3. <div class="span6 offset3"></div>
  4. <div class="clear-left"></div>
  5. </div>
  6.  
  7. <div class="row-fluid">
  8. <div class="span3"></div>
  9. <div class="span6 offset3"></div>
  10. <div class="clear-left"></div>
  11. </div>

运行效果

备注

Less多少有些程序语言的味道,刚才的示例写的比较仓促,应该进一步重构,比如:引入解释性的变量,去掉“魔法数字”等。

CSS:用Less实现栅格系统的更多相关文章

  1. BootStrap的table表格,栅格系统,form表单的样式

    BootStrap BootStrap的简介 1.    什么是Bootstrap 由两个前端设计师开发的一个前端的框架(Html,css,js) 简化了程序员写css的代码 2.    为什么使用B ...

  2. CSS:用SASS(SCSS)实现栅格系统

    背景 在CSS:用Less实现栅格系统中我介绍了如何用LESS实现栅格系统,为啥还要再用SASS做一遍呢?Bootstrap+JQuery+Less做前端(以读取为目的),ExtJs+Sass做后台( ...

  3. Bootstrap--全局CSS样式之栅格系统

    Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义类,还有强大的mixin 用于生成更具 ...

  4. Bootstrap4中栅格系统CSS中 col-sm-* col-md-* col-lg-*的意义以及当其同时具有col-xs-* col-sm-* col-md-* col-lg-*的含义

    根据Bootstrap--Grid 中 col-sm-* col-md-* col-lg-* col-xl-*的意义: .col-sm-* 小屏幕 手机 (≥ 576px) .col-md-* 中等屏 ...

  5. CSS3简单的栅格系统

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 初学者--bootstrap(四)栅格系统----在路上(8)

    ---------------------------------------栅格系统:是bootstrap提供的响应式布局方式------------------------------------ ...

  7. Bootstrap之栅格系统

    bootstrap 移动优先 中文官网  http://www.bootcss.com/ 1.基本模板 <!DOCTYPE html> <html lang="en&quo ...

  8. Bootstrap响应式栅格系统的设计原理

    1.历史背景 Bootstrap是Twitter的工程师Mark Otto和Jacob Thornton开发的一套供内部使用的UI框架,于2011年开源.2012年发布的第二版中新增了12列栅格系统和 ...

  9. Bootstrap栅格系统详解,响应式布局

    Bootstrap栅格系统详解 栅格系统介绍 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. 栅格系统用于通 ...

随机推荐

  1. 数据库数据导出成XML文件

    在数据库中,怎样把库中的数据导出XML文件, sql语句如下: SELECT *  FROM 表名 FOR XML AUTO, ELEMENTS

  2. PhpStorm 超强语言模板的支持

    原文:[转]PhpStorm 超强语言模板的支持 最近遇到一些PhpStorm编程的问题: 在使用Zen Coding插件时,PHPStorm不像Notepad++那样随便使用.PHPStorm只有在 ...

  3. Windows环境搭建与第一个C# Sample

    Redis入门 - Windows环境搭建与第一个C# Sample   什么是Redis? Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.从2013年5月开始,R ...

  4. hdu149850 years, 50 colors (多个最小顶点覆盖)

    50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

  5. 一步一步写算法(之挑选最大的n个数)

    原文:一步一步写算法(之挑选最大的n个数) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 从一堆数据中挑选n个最大的数,这个问题是网上流传的 ...

  6. ASP.NET 5应用是如何运行的(3)

    ASP.NET 5应用是如何运行的(3) 设置自定义的入口程序体现应用本身与应用托管之间的分离,它使我们可以创建独立于托管环境的应用,并根据需要寄宿于任何一个我们希望的宿主程序下,对于Web应用来说这 ...

  7. SQL点滴24—监测表的变化

    原文:SQL点滴24-监测表的变化(转载) 在网上看到一篇关于监测表中的插入,更新,删除的方法,使用触发器实现的,很有价值. 地址:http://www.dbaunion.com/u/livecoac ...

  8. PLSQL配置登录用户信息

    PLSQL配置登录用户信息 2012-08-30 08:47:02     我来说两句      作者:lsxy117 收藏    我要投稿 PLSQL配置登录用户信息   工作中经常使用PLSQL ...

  9. 添加MySql Metat Database 信息

    有时候我们想看看 一个数据库上面 某种元素(比如表名)的所有信息,在Mysql上 我们可以通过引入information_schema 的方式,就可以非常方便的查看到. 添加步骤 Edit->P ...

  10. js面向对象学习总结

    1.函数作为参数进行传递 function a(str,fun){ console.log(fun(str)) }; function up(str){ return str.toUpperCase( ...