找回密码
 立即注册
首页 业界区 业界 css快速入门系列 —— 移动开发闲谈

css快速入门系列 —— 移动开发闲谈

赊朗爆 前天 19:21
移动开发闲谈(Flex和css 库)

背景

目前在做移动小程序开发,效果必须和设计稿一模一样,一个像素都不能有差异。
虽然公司也提供了图生文的工具,但是有时生成的代码可读性不太好,二次修改也比较费劲,这种情况还不如自己重写。
如果长期没有写样式,知识遗忘是正常的。
单个 css 语法问题查文档或者问 gpt 都很方便解决,重要的是要有 css 库的思路。
伸缩盒模型

简介

CSS Flexbox(弹性盒布局模型)在2009年首次提出,又称伸缩盒模型。
flexbox 提供一种简介而强大的方式来排列和对齐页面中的元素,以及定义元素视觉顺序。
Flex在移动端广泛使用。
弹性容器和弹性项目


  • display:flex 将元素变成弹性容器,或者称开启flex布局,其孩子(只作用于第一代)自动变成弹性项目
  • 弹性项目,不论之前是 block、inline、inline-block,都变成block。比如 span
  • display: inline-flex 表现为行内元素。只占据必要的宽度,可以和其他行内元素在同一行排列。
  • 一个元素可以同时是弹性容器、弹性项目
  1.   Item 1
  2.   Item 2
  3.   Item 3
  4. inline-flex 会和此文本在同一行
复制代码
1.png

2.png

Tip:

  • display: flex表现为块级元素;
  • display: inline-flex表现为行内元素;
  • display: inline-flex 用的较少。比如将两个 flex 并排放在一行,但两个 flex中间容易出现空隙(比如两个 flex 之间有空格、回车)
  • 主轴对齐默认:flex-start,所以上图会左对齐。
主轴方向


  • 主轴默认是从左到右。弹性项目沿着主轴方向排列。主轴不是只有一条(有N行就可以说有N条主轴)
  • 侧轴(也叫交叉轴)总是与主轴垂直,也可以有多条。侧轴方向只会是:从上到下、从左到右。
  • 只能修改主轴方向。主轴变化,侧轴也会跟着变。
  • 主轴和侧轴的交叉点在哪里不用关心,因为不需要
  • 弹性项目沿着主轴排列,默认方向从左到右
  • 侧轴默认方向是从上到下
  • flex-direction: row(默认值:左->右)/row-reverse(右->左)/column(上-> 下)/column-reverse(下->上)
默认不换行(flex-wrap: nowrap):
3.png
  1. .container {
  2.   display: flex;
  3.   align-items: center;
  4.   border: 2px solid #000;
  5.   padding: 10px;
  6. }
复制代码
flex-direction: row/row-reverse(侧轴对应的方向是:上到下)。请看下图:
4.png

flex-direction:column(上到下)/column-reverse(侧轴对应的方向:左到右)。请看下图:
5.png

主轴换行

主轴换行:flex-wrap: nowrap(默认)/wrap 换行/wrap-reverse 反向换行
主轴默认是不换行的。比如宽度800600的弹性容器,其中弹性项目宽度200200,放4个正好。在加一个,仍旧排在一行。这里体现了缩(chrome工具有提示)
6.png

如果需要第5个换行,需要将 nowrap 改成 wrap 即可。
  1.   display: flex;
  2. - flex-wrap: wrap;
复制代码
7.png

主轴方向比较节省,大家挤一挤。侧轴方向就有点败家(有多的就多花,没有多余的也不会挤一挤)。比如第5个换行后,发现下面还有400的高度,自己占200,没必要和第一行挤在一起,就放在下面400的中间,上下间距100。
第9个出现后,就和上铺的兄弟说,空间不够了,没必要浪费了,于是第二排(例如第5个)紧挨着第一排
8.png

第13个出现,则超出容器(600px高度)排列
9.png

wrap-reverse:反向换行。之前是从上到下换行,现在是从下到上换行。
10.png
  1.   Item 1
  2.   Item 2
  3.   Item 3
  4.   Item 4
  5.   Item 5
复制代码
主轴对齐

justify-content,中文“调整内容”。内容先放上去,然后在调整对齐方式。值有:

  • flex-start(默认值)
  • flex-start(主轴起点对齐,默认值)
  • flex-end(主轴终点对齐。项目顺序不用变)
  • center(居中)
  • space-between(项目均匀分布,边缘项目紧贴容器。较常用)
  • space-around(项目均匀分布,边缘是非边缘间距的一半)
  • space-evenly(项目均匀分布,边缘和非边缘间距相同)
注:如果太满(一行没有任何间隙),无论哪个属性,都看不出变化。第一行填满后再增加一项,假如换到了第二行,新加的这项的对齐方式就能看出来
居中对齐:justify-content: center。请看下图:
11.png

主轴终点对齐:justify-content: flex-end。请看下图:
12.png

注:别和换主轴方向(flex-direction: row-reverse)搞混
13.png

项目均匀分布,边缘是非边缘间距的一半:justify-content:space-around。请看下图:
14.png

项目均匀分布,边缘项目紧贴容器:justify-content:space-between。请看下图:
15.png

项目均匀分布,边缘和非边缘间距相同:justify-content: space-evenly。请看下图:
16.png

注:如果太满,无论哪个属性,都看不出变化。例如这里的:justify-content: flex-end
17.png
  1.   Item 1
  2.   Item 2
  3.   Item 3
复制代码
Tip:更多详情请看:[mdn justify-content][https://developer.mozilla.org/zh-CN/docs/Web/CSS/justify-content]
侧轴对齐

分单行和多行,每种情况用的属性不同。
单行用 align-items,多行用 align-content。
总结:

  • 项目多行:align-content: stretch(默认值。平分剩余容器高度,需要项目不设置高度)/flex-start(侧轴起点对齐)/flex-end(侧轴终点对齐)/center/space-around(和主轴对齐中的属性值含义类似)/space-between/space-evenly(侧轴完全平分间隙)
  • 项目多行:每行的高度由其中最高的项目决定
项目单行

align-items:

  • flex-start,侧轴起点对齐
  • flex-end,侧轴终点对齐
  • stretch,默认值。中文“拉伸”,如果弹性项目没有设置高度,将拉伸到容器高度
  • baseline,第一行文字基线对齐。基本不用。
  1.   Item 1
  2.   Item 2
  3.   Item 3
复制代码
18.png

侧轴默认对齐不是顶部:align-items: flex-start,虽然上图表现的效果和 flex-start。这个稍后我们讲。
侧轴底部对齐:align-items: flex-end;
19.png

侧轴居中对齐:align-items: center。效果如下:
20.png

侧轴基线对齐(几乎不用):align-items: baseline;。请看下图:
21.png

align-items: stretch 是默认值,将伸缩项填充父容器高度。
只有伸缩项没有高度时才能拉伸。例如把高度去掉,效果就出来了。
  1.   Item 1
  2.   Item 2
  3.   Item 3
复制代码
22.png

前面因为有高度,无法拉伸,所以效果和 align-items: flex-start 相同。
例如设置后两项的高度,align-items: stretch 效果如下图所示:
23.png

项目多行

align-content(和主轴对齐justify-content的值相似)

  • flex-start,侧轴起点对齐
  • flex-end,侧轴终点对齐
  • center,侧轴中点对齐
  • space-between,项目均匀分布,边缘项目紧贴容器
  • space-around,项目均匀分布,边缘是非边缘间距的一半
  • space-evenly,项目均匀分布,边缘和非边缘间距相同
  • stretch,侧轴拉伸对齐。默认值。没有高度的时候生效。
准备环境:准备3行,弹性项目高度不一致。
  1.   Item 1
  2.   Item 2
  3.   Item 3
  4.   Item 4
  5.   Item 5  Item 6  Item 7  Item 8  Item 9
复制代码
24.png

每行以最高的弹性项目为准,侧轴对齐这里讲的就是如何分配多余的空间。前面我们说到侧轴不太会过日子,有点败家。这里我们研究如何败家。
侧轴起点对齐:align-content: flex-start
25.png

侧轴中点对齐:align-content: center
26.png

侧轴拉伸对齐:align-content: stretch 默认值。假如三行的高度都去掉,将会平分容器的高度
  1. .item {
  2.   box-sizing: border-box;
  3.   background-color: lightblue;
  4.   width: 200px;
  5.   /* height: 150px; */
  6.   border: 1px solid #007BFF;
  7. }
  8. /* .fn-h1{ height: 200px;} */
  9. /* .fn-h2{ height: 300px;} */
复制代码
27.png

水平垂直居中

方式1
  1. display: flex;
  2. align-items: center;
  3. justify-content: center;
复制代码
28.png

完整代码:
  1.   Item
复制代码
方式2

父元素 display: flex,子元素 margin: auto,也能实现方式1的效果。
  1. [/code][size=3]伸缩性[/size]
  2. [size=2]flex-grow 伸[/size]
  3. [indent]flex-grow: 1。默认是 0,表示主轴方向存在多余空间,也不拉伸。
  4. [/indent]为了研究 flex-grow,先准备环境:
  5. [code]  Item1
  6.   Item2
  7.   Item3
复制代码
29.png

上图可以知道,默认是没有拉伸的。因为剩余300px。
我们给弹性项目增加 flex-grow: 1,弹性盒子则会瓜分剩余空间。
30.png

每一个弹性项目都占1/3。
若3个伸缩项目flex-grow的值分别是 1、1、2,则分别瓜分 1/4、1/4、2/4。
flex-grow 默认是 0,即主轴存在剩余空间,也不拉伸。
flex-shrink 缩

flex-shrink,默认值是1。空间不够,会收缩。
注:收缩的比例不同于拉伸
准备环境:弹性盒子宽度是700,但容器宽度只有400
  1.   Item1
  2.   Item2
  3.   Item3
复制代码
31.png

容器有富裕的时候,大家按比例分,但是容器不富裕时,就不是这个规则。否则大家都应该减去100。但上图得知 item1 还有114.41,而不是100。item1 也不是200。
32.png

规则是这样:
item1 剩余计算规则:
  1. 1. 缩小比例: 200/(200+200+300)
  2. 2. 缩小值:缩小比例 * 300
  3. 3. item1 剩余值:
  4. 200 - (200/700)*300 = 114.2857142857
复制代码
但是浏览器是 114.41 和 114.285不一样,原因是浏览器的锅,由于弹性盒子的边框问题造成。
注释掉弹性盒子的边框:
  1.   .item {
  2.     /* box-sizing: border-box; */
  3.     background-color: lightblue;
  4.     width: 200px;
  5.     height: 200px;
  6.     /* border: 1px solid #007BFF; */
  7.   }
复制代码
33.png

这个值和 114.285就非常接近了。
为什么缩的规则不能简单设置为大家均摊赔了多少钱?比如有的弹性项目本来就只有20,你要人家陪100,不合适。
Tip:缩的极限,即内容能呈现
34.png

flex复合属性

flex是3个属性的复合属性,三值顺序必须是:flex-grow、flex-shrink、flex-basis
  1.   Item1
  2.   Item2
  3.   Item3
复制代码
35.png
  1. flex: 1 1 100px;
  2. /* 等价 */
  3. flex-grow: 1;
  4. flex-shrink 1;
  5. flex-basis: 100px;
复制代码
  1. flex-grow: 1;
  2. flex-shrink: 1;
  3. flex-basis: 0;
  4. /* 等于 */
  5. flex: 1 1 0; /* 最常用。0表示没有宽度,按照 “伸” 来走 */
  6. /* 等于 */
  7. flex: 1;
复制代码
flex 复合属性之所以感觉难,是因为它还有缩写。比如:
  1. flex: auto;
  2. /* 等价 */
  3. flex: 1 1 auto;
复制代码
  1. flex: none
  2. /* 等于 */
  3. flex: 0 0 auto;
复制代码
  1. flex: 0 auto; /* flex 初始值 */
  2. /* 等于 */
  3. flex: 0 1 auto;
复制代码
排序

order,默认值是0,值越小,排列越靠前
36.png

其他

flex-flow

flex-flow 是复合属性,不建议使用。复合了flex-direction 和 flex-wrap
基准长度

flex-basis(使用较少) 设置主轴方向的基准长度,会让宽度(主轴是水平方向)或高度(主轴是垂直方向)失效
默认值是auto,即弹性盒子的宽度或高度。
浏览器用 flex-basis 计算主轴是否有富裕的空间。
下面示例会让宽度失效
  1.   Item1
  2.   Item2
  3.   Item3
复制代码
37.png

更改主轴方向,则会让高度失效:
  1.   display: flex;
  2. - flex-direction: column;
复制代码
38.png

单独对齐

align-self,单独调整弹性项目在侧轴的对齐方式。用的较少。
39.png

Tip:为什么只能调整侧轴对齐方式,因为主轴都是连在一起的,无法调。
css 库

单个css 语法不难,重要的是代码复用和可读性。以下是笔者参考网易NEC的css规范写的一个 css 库。
css-library.css

可以将一些常用的 css 零碎的语法统一起来:
  1. /*
  2. 目录
  3.   reset.css
  4.   grid.css
  5.   unit.css
  6.   module.css
  7.   skin.css
  8.   function.css
  9. */
  10. /* reset.css */
  11. /* 将常用的元素的margin和padding清空,方便布局;之所以不用*{margin:0;padding:0;},主要是性能问题,*{}会匹配很多废弃的元素 */
  12. html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,caption,th,td,form,fieldset,legend,input,button,textarea,menu{margin:0;padding:0;}
  13. /* 将html5的标签改为块级元素,如果是移动端开发,可能是多余的(chrome 53测试默认都是block),以防万一吧 */
  14. header,footer,section,article,aside,nav,hgroup,address,figure,figcaption,menu,details{display:block;}
  15. /* 设置table的边框 */
  16. table{border-collapse:collapse;border-spacing:0;}
  17. /* 去除加粗,文本往左 */
  18. caption,th{text-align:left;font-weight:normal;}
  19. /* 去除fieldset、iframe边框 */
  20. html,body,fieldset,img,iframe,abbr{border:0;}
  21. /* 为了语义和设计的兼顾 */
  22. legend{display:none;}
  23. /* i、em、u、s等元素的默认样式保留挺好的 */
  24. /* 去除下面元素的斜体 */
  25. /* i,cite,em,var,address,dfn{font-style:normal;} */
  26. /* 点击summary时有outline,不要 */
  27. [hidefocus],summary{outline:0;}
  28. /* 去除列表样式 */
  29. li{list-style:none;}
  30. /* 去除默认字体大小,继承父类即可,不喜欢normalize.css保留了字体大小 */
  31. h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
  32. /* small{font-size:100%;} */
  33. /* 设定sup、sub字体大小为父类的83% */
  34. sup,sub{font-size:83%;}
  35. /* chrome中pre是monospace字体,这里将以下元素字体设置为继承,否则即使设置body的字体,pre的字体还是monospace */
  36. pre,code,kbd,samp{font-family:inherit;}
  37. /* 去除" */
  38. /* q:before,q:after{content:none;} */
  39. /* 不让textarea调整尺寸 */
  40. textarea{resize:none;}
  41. /* 将手势改为default,chrome中summary的手势为auto */
  42. label,summary{cursor:default;}
  43. /* 修改为手 */
  44. a,button{cursor:pointer;}
  45. /* 将em、strong、b加粗 */
  46. /* em,strong,b{font-weight:bold;} */
  47. /* 去除del和s的删除线;去除ins和u的下划线;去除a下划线;*/
  48. a,a:hover{text-decoration:none;}
  49. /* del,ins,u,s{text-decoration:none;} */
  50. /* 1rem=10px */
  51. html{font-size:62.5%;}
  52. /* 设置通用字体;有的字体不能继承,例如chrome中body 16px,即使设置body字体为12px,textarea,input,button,select,keygen仍然还是13.333333px;去除textaret、input、select的outline;*/
  53. body,textarea,input,button,select,keygen,legend{font:14px/1.5 sans-serif,arial,\5b8b\4f53;color:#333;outline:0;/* 若使用rem代替px,p、span等标签在ie10以下文字大小将继承html,而chrome,firefox没问题 */}
  54. /* 将背景ragb(0,0,0,0)改为白色 */
  55. body{background:#fff;}
  56. /* 参考bootstrapV3 */
  57. p{margin-bottom:10px;}
  58. /* 注释下面内容,否则给按钮字体颜色增加很多工作量,不就是chrome点击a字体变红色,没关系 */
  59. /* a,a:hover{color:#333;} */
  60. /* grid.css,网格系统 */
  61. /* 网格容器 */
  62. .g-grid{box-sizing:border-box;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;}
  63. .g-grid-w1{width:86%;}
  64. /* 手机和平板是86%;PC和大屏下是960px */
  65. .g-grid-w960{width:960px;}
  66. /* 清除浮动 */
  67. .g-grid::after,.g-grid .row::after,.g-grid .clearfix::after,.g-grid .clearfix_xs::after,.g-grid .clearfix_sm::after,.g-grid .clearfix_md::after,.g-grid .clearfix_lg::after{display:block;height:0;visibility:hidden;content:'.';clear:both;}
  68. /* Column clearing,配合媒体查询 */
  69. .g-grid .clearfix_xs,.g-grid .clearfix_sm,.g-grid .clearfix_md,.g-grid .clearfix_lg{display:none;}
  70. /* 行的设置 */
  71. .g-grid .row{box-sizing:border-box;margin-left:-15px;margin-right:-15px;margin-bottom:20px;}
  72. .g-grid .row .row{margin-top:10px;margin-bottom:0;}
  73. /* 列的设置 */
  74. .g-grid [class*="col_"]{position:relative;float:left;box-sizing:border-box;padding:15px;}
  75. .g-grid .col_1{width:8.333333333333334%;}
  76. .g-grid .col_2{width:16.666666666666668%;}
  77. .g-grid .col_3{width:25%;}
  78. .g-grid .col_4{width:33.333333333333336%;}
  79. .g-grid .col_5{width:41.666666666666664%;}
  80. .g-grid .col_6{width:50%;}
  81. .g-grid .col_7{width:58.333333333333336%;}
  82. .g-grid .col_8{width:66.666666666666670%;}
  83. .g-grid .col_9{width:75%;}
  84. .g-grid .col_10{width:83.333333333333330%;}
  85. .g-grid .col_11{width:91.666666666666670%;}
  86. .g-grid .col_12{width:100%;}
  87. /* 偏移 */
  88. .g-grid .offset_col_1{margin-left:8.333333333333334%;}
  89. .g-grid .offset_col_2{margin-left:16.666666666666668%;}
  90. .g-grid .offset_col_3{margin-left:25%;}
  91. .g-grid .offset_col_4{margin-left:33.333333333333336%;}
  92. .g-grid .offset_col_5{margin-left:41.666666666666664%;}
  93. .g-grid .offset_col_6{margin-left:50%;}
  94. .g-grid .offset_col_7{margin-left:58.333333333333336%;}
  95. .g-grid .offset_col_8{margin-left:66.666666666666670%;}
  96. .g-grid .offset_col_9{margin-left:75%;}
  97. .g-grid .offset_col_10{margin-left:83.333333333333330%;}
  98. .g-grid .offset_col_11{margin-left:91.666666666666670%;}
  99. .g-grid .offset_col_12{margin-left:100%;}
  100. /* pull */
  101. .g-grid .pull_col_1{left:8.333333333333334%;}
  102. .g-grid .pull_col_2{left:16.666666666666668%;}
  103. .g-grid .pull_col_3{left:25%;}
  104. .g-grid .pull_col_4{left:33.333333333333336%;}
  105. .g-grid .pull_col_5{left:41.666666666666664%;}
  106. .g-grid .pull_col_6{left:50%;}
  107. .g-grid .pull_col_7{left:58.333333333333336%;}
  108. .g-grid .pull_col_8{left:66.666666666666670%;}
  109. .g-grid .pull_col_9{left:75%;}
  110. .g-grid .pull_col_10{left:83.333333333333330%;}
  111. .g-grid .pull_col_11{left:91.666666666666670%;}
  112. .g-grid .pull_col_12{left:100%;}
  113. /* push */
  114. .g-grid .push_col_1{right:8.333333333333334%;}
  115. .g-grid .push_col_2{right:16.666666666666668%;}
  116. .g-grid .push_col_3{right:25%;}
  117. .g-grid .push_col_4{right:33.333333333333336%;}
  118. .g-grid .push_col_5{right:41.666666666666664%;}
  119. .g-grid .push_col_6{right:50%;}
  120. .g-grid .push_col_7{right:58.333333333333336%;}
  121. .g-grid .push_col_8{right:66.666666666666670%;}
  122. .g-grid .push_col_9{right:75%;}
  123. .g-grid .push_col_10{right:83.333333333333330%;}
  124. .g-grid .push_col_11{right:91.666666666666670%;}
  125. .g-grid .push_col_12{right:100%;}
  126. /* 手机 */
  127. @media screen and (max-width:667px){
  128.   /* 定制宽度 */
  129.   .g-grid-w2{width:100%;}
  130.   .g-grid .clearfix_xs{display:block;}
  131.   .g-grid .xs_col_1{width:8.333333333333334%;}
  132.   .g-grid .xs_col_2{width:16.666666666666668%;}
  133.   .g-grid .xs_col_3{width:25%;}
  134.   .g-grid .xs_col_4{width:33.333333333333336%;}
  135.   .g-grid .xs_col_5{width:41.666666666666664%;}
  136.   .g-grid .xs_col_6{width:50%;}
  137.   .g-grid .xs_col_7{width:58.333333333333336%;}
  138.   .g-grid .xs_col_8{width:66.666666666666670%;}
  139.   .g-grid .xs_col_9{width:75%;}
  140.   .g-grid .xs_col_10{width:83.333333333333330%;}
  141.   .g-grid .xs_col_11{width:91.666666666666670%;}
  142.   .g-grid .xs_col_12{width:100%;}
  143.   /* 偏移 */
  144.   .g-grid .xs_offset_col_1{margin-left:8.333333333333334%;}
  145.   .g-grid .xs_offset_col_2{margin-left:16.666666666666668%;}
  146.   .g-grid .xs_offset_col_3{margin-left:25%;}
  147.   .g-grid .xs_offset_col_4{margin-left:33.333333333333336%;}
  148.   .g-grid .xs_offset_col_5{margin-left:41.666666666666664%;}
  149.   .g-grid .xs_offset_col_6{margin-left:50%;}
  150.   .g-grid .xs_offset_col_7{margin-left:58.333333333333336%;}
  151.   .g-grid .xs_offset_col_8{margin-left:66.666666666666670%;}
  152.   .g-grid .xs_offset_col_9{margin-left:75%;}
  153.   .g-grid .xs_offset_col_10{margin-left:83.333333333333330%;}
  154.   .g-grid .xs_offset_col_11{margin-left:91.666666666666670%;}
  155.   .g-grid .xs_offset_col_12{margin-left:100%;}
  156.   /* pull */
  157.   .g-grid .xs_pull_col_1{left:8.333333333333334%;}
  158.   .g-grid .xs_pull_col_2{left:16.666666666666668%;}
  159.   .g-grid .xs_pull_col_3{left:25%;}
  160.   .g-grid .xs_pull_col_4{left:33.333333333333336%;}
  161.   .g-grid .xs_pull_col_5{left:41.666666666666664%;}
  162.   .g-grid .xs_pull_col_6{left:50%;}
  163.   .g-grid .xs_pull_col_7{left:58.333333333333336%;}
  164.   .g-grid .xs_pull_col_8{left:66.666666666666670%;}
  165.   .g-grid .xs_pull_col_9{left:75%;}
  166.   .g-grid .xs_pull_col_10{left:83.333333333333330%;}
  167.   .g-grid .xs_pull_col_11{left:91.666666666666670%;}
  168.   .g-grid .xs_pull_col_12{left:100%;}
  169.   /* push */
  170.   .g-grid .xs_push_col_1{right:8.333333333333334%;}
  171.   .g-grid .xs_push_col_2{right:16.666666666666668%;}
  172.   .g-grid .xs_push_col_3{right:25%;}
  173.   .g-grid .xs_push_col_4{right:33.333333333333336%;}
  174.   .g-grid .xs_push_col_5{right:41.666666666666664%;}
  175.   .g-grid .xs_push_col_6{right:50%;}
  176.   .g-grid .xs_push_col_7{right:58.333333333333336%;}
  177.   .g-grid .xs_push_col_8{right:66.666666666666670%;}
  178.   .g-grid .xs_push_col_9{right:75%;}
  179.   .g-grid .xs_push_col_10{right:83.333333333333330%;}
  180.   .g-grid .xs_push_col_11{right:91.666666666666670%;}
  181.   .g-grid .xs_push_col_12{right:100%;}
  182. }
  183. /* 平板 */
  184. @media screen and (min-width:668px){
  185.   .g-grid .clearfix_sm{display:block;}
  186.   .g-grid .sm_col_1{width:8.333333333333334%;}
  187.   .g-grid .sm_col_2{width:16.666666666666668%;}
  188.   .g-grid .sm_col_3{width:25%;}
  189.   .g-grid .sm_col_4{width:33.333333333333336%;}
  190.   .g-grid .sm_col_5{width:41.666666666666664%;}
  191.   .g-grid .sm_col_6{width:50%;}
  192.   .g-grid .sm_col_7{width:58.333333333333336%;}
  193.   .g-grid .sm_col_8{width:66.666666666666670%;}
  194.   .g-grid .sm_col_9{width:75%;}
  195.   .g-grid .sm_col_10{width:83.333333333333330%;}
  196.   .g-grid .sm_col_11{width:91.666666666666670%;}
  197.   .g-grid .sm_col_12{width:100%;}
  198.   /* 偏移 */
  199.   .g-grid .sm_offset_col_1{margin-left:8.333333333333334%;}
  200.   .g-grid .sm_offset_col_2{margin-left:16.666666666666668%;}
  201.   .g-grid .sm_offset_col_3{margin-left:25%;}
  202.   .g-grid .sm_offset_col_4{margin-left:33.333333333333336%;}
  203.   .g-grid .sm_offset_col_5{margin-left:41.666666666666664%;}
  204.   .g-grid .sm_offset_col_6{margin-left:50%;}
  205.   .g-grid .sm_offset_col_7{margin-left:58.333333333333336%;}
  206.   .g-grid .sm_offset_col_8{margin-left:66.666666666666670%;}
  207.   .g-grid .sm_offset_col_9{margin-left:75%;}
  208.   .g-grid .sm_offset_col_10{margin-left:83.333333333333330%;}
  209.   .g-grid .sm_offset_col_11{margin-left:91.666666666666670%;}
  210.   .g-grid .sm_offset_col_12{margin-left:100%;}
  211.   /* pull */
  212.   .g-grid .sm_pull_col_1{left:8.333333333333334%;}
  213.   .g-grid .sm_pull_col_2{left:16.666666666666668%;}
  214.   .g-grid .sm_pull_col_3{left:25%;}
  215.   .g-grid .sm_pull_col_4{left:33.333333333333336%;}
  216.   .g-grid .sm_pull_col_5{left:41.666666666666664%;}
  217.   .g-grid .sm_pull_col_6{left:50%;}
  218.   .g-grid .sm_pull_col_7{left:58.333333333333336%;}
  219.   .g-grid .sm_pull_col_8{left:66.666666666666670%;}
  220.   .g-grid .sm_pull_col_9{left:75%;}
  221.   .g-grid .sm_pull_col_10{left:83.333333333333330%;}
  222.   .g-grid .sm_pull_col_11{left:91.666666666666670%;}
  223.   .g-grid .sm_pull_col_12{left:100%;}
  224.   /* push */
  225.   .g-grid .sm_push_col_1{right:8.333333333333334%;}
  226.   .g-grid .sm_push_col_2{right:16.666666666666668%;}
  227.   .g-grid .sm_push_col_3{right:25%;}
  228.   .g-grid .sm_push_col_4{right:33.333333333333336%;}
  229.   .g-grid .sm_push_col_5{right:41.666666666666664%;}
  230.   .g-grid .sm_push_col_6{right:50%;}
  231.   .g-grid .sm_push_col_7{right:58.333333333333336%;}
  232.   .g-grid .sm_push_col_8{right:66.666666666666670%;}
  233.   .g-grid .sm_push_col_9{right:75%;}
  234.   .g-grid .sm_push_col_10{right:83.333333333333330%;}
  235.   .g-grid .sm_push_col_11{right:91.666666666666670%;}
  236.   .g-grid .sm_push_col_12{right:100%;}
  237. }
  238. /* PC */
  239. @media screen and (min-width:960px){
  240.   .g-grid .clearfix_md{display:block;}
  241.   .g-grid .md_col_1{width:8.333333333333334%;}
  242.   .g-grid .md_col_2{width:16.666666666666668%;}
  243.   .g-grid .md_col_3{width:25%;}
  244.   .g-grid .md_col_4{width:33.333333333333336%;}
  245.   .g-grid .md_col_5{width:41.666666666666664%;}
  246.   .g-grid .md_col_6{width:50%;}
  247.   .g-grid .md_col_7{width:58.333333333333336%;}
  248.   .g-grid .md_col_8{width:66.666666666666670%;}
  249.   .g-grid .md_col_9{width:75%;}
  250.   .g-grid .md_col_10{width:83.333333333333330%;}
  251.   .g-grid .md_col_11{width:91.666666666666670%;}
  252.   .g-grid .md_col_12{width:100%;}
  253.   /* 偏移 */
  254.   .g-grid .md_offset_col_1{margin-left:8.333333333333334%;}
  255.   .g-grid .md_offset_col_2{margin-left:16.666666666666668%;}
  256.   .g-grid .md_offset_col_3{margin-left:25%;}
  257.   .g-grid .md_offset_col_4{margin-left:33.333333333333336%;}
  258.   .g-grid .md_offset_col_5{margin-left:41.666666666666664%;}
  259.   .g-grid .md_offset_col_6{margin-left:50%;}
  260.   .g-grid .md_offset_col_7{margin-left:58.333333333333336%;}
  261.   .g-grid .md_offset_col_8{margin-left:66.666666666666670%;}
  262.   .g-grid .md_offset_col_9{margin-left:75%;}
  263.   .g-grid .md_offset_col_10{margin-left:83.333333333333330%;}
  264.   .g-grid .md_offset_col_11{margin-left:91.666666666666670%;}
  265.   .g-grid .md_offset_col_12{margin-left:100%;}
  266.   /* pull */
  267.   .g-grid .md_pull_col_1{left:8.333333333333334%;}
  268.   .g-grid .md_pull_col_2{left:16.666666666666668%;}
  269.   .g-grid .md_pull_col_3{left:25%;}
  270.   .g-grid .md_pull_col_4{left:33.333333333333336%;}
  271.   .g-grid .md_pull_col_5{left:41.666666666666664%;}
  272.   .g-grid .md_pull_col_6{left:50%;}
  273.   .g-grid .md_pull_col_7{left:58.333333333333336%;}
  274.   .g-grid .md_pull_col_8{left:66.666666666666670%;}
  275.   .g-grid .md_pull_col_9{left:75%;}
  276.   .g-grid .md_pull_col_10{left:83.333333333333330%;}
  277.   .g-grid .md_pull_col_11{left:91.666666666666670%;}
  278.   .g-grid .md_pull_col_12{left:100%;}
  279.   /* push */
  280.   .g-grid .md_push_col_1{right:8.333333333333334%;}
  281.   .g-grid .md_push_col_2{right:16.666666666666668%;}
  282.   .g-grid .md_push_col_3{right:25%;}
  283.   .g-grid .md_push_col_4{right:33.333333333333336%;}
  284.   .g-grid .md_push_col_5{right:41.666666666666664%;}
  285.   .g-grid .md_push_col_6{right:50%;}
  286.   .g-grid .md_push_col_7{right:58.333333333333336%;}
  287.   .g-grid .md_push_col_8{right:66.666666666666670%;}
  288.   .g-grid .md_push_col_9{right:75%;}
  289.   .g-grid .md_push_col_10{right:83.333333333333330%;}
  290.   .g-grid .md_push_col_11{right:91.666666666666670%;}
  291.   .g-grid .md_push_col_12{right:100%;}
  292. }
  293. /* 大屏 */
  294. @media screen and (min-width:1024px){
  295.   /* 定制宽度 */
  296.   .g-grid-w2{width:960px;}
  297.   .g-grid .clearfix_lg{display:block;}
  298.   .g-grid .lg_col_1{width:8.333333333333334%;}
  299.   .g-grid .lg_col_2{width:16.666666666666668%;}
  300.   .g-grid .lg_col_3{width:25%;}
  301.   .g-grid .lg_col_4{width:33.333333333333336%;}
  302.   .g-grid .lg_col_5{width:41.666666666666664%;}
  303.   .g-grid .lg_col_6{width:50%;}
  304.   .g-grid .lg_col_7{width:58.333333333333336%;}
  305.   .g-grid .lg_col_8{width:66.666666666666670%;}
  306.   .g-grid .lg_col_9{width:75%;}
  307.   .g-grid .lg_col_10{width:83.333333333333330%;}
  308.   .g-grid .lg_col_11{width:91.666666666666670%;}
  309.   .g-grid .lg_col_12{width:100%;}
  310.   /* 偏移 */
  311.   .g-grid .lg_offset_col_1{margin-left:8.333333333333334%;}
  312.   .g-grid .lg_offset_col_2{margin-left:16.666666666666668%;}
  313.   .g-grid .lg_offset_col_3{margin-left:25%;}
  314.   .g-grid .lg_offset_col_4{margin-left:33.333333333333336%;}
  315.   .g-grid .lg_offset_col_5{margin-left:41.666666666666664%;}
  316.   .g-grid .lg_offset_col_6{margin-left:50%;}
  317.   .g-grid .lg_offset_col_7{margin-left:58.333333333333336%;}
  318.   .g-grid .lg_offset_col_8{margin-left:66.666666666666670%;}
  319.   .g-grid .lg_offset_col_9{margin-left:75%;}
  320.   .g-grid .lg_offset_col_10{margin-left:83.333333333333330%;}
  321.   .g-grid .lg_offset_col_11{margin-left:91.666666666666670%;}
  322.   .g-grid .lg_offset_col_12{margin-left:100%;}
  323.   /* pull */
  324.   .g-grid .lg_pull_col_1{left:8.333333333333334%;}
  325.   .g-grid .lg_pull_col_2{left:16.666666666666668%;}
  326.   .g-grid .lg_pull_col_3{left:25%;}
  327.   .g-grid .lg_pull_col_4{left:33.333333333333336%;}
  328.   .g-grid .lg_pull_col_5{left:41.666666666666664%;}
  329.   .g-grid .lg_pull_col_6{left:50%;}
  330.   .g-grid .lg_pull_col_7{left:58.333333333333336%;}
  331.   .g-grid .lg_pull_col_8{left:66.666666666666670%;}
  332.   .g-grid .lg_pull_col_9{left:75%;}
  333.   .g-grid .lg_pull_col_10{left:83.333333333333330%;}
  334.   .g-grid .lg_pull_col_11{left:91.666666666666670%;}
  335.   .g-grid .lg_pull_col_12{left:100%;}
  336.   /* push */
  337.   .g-grid .lg_push_col_1{right:8.333333333333334%;}
  338.   .g-grid .lg_push_col_2{right:16.666666666666668%;}
  339.   .g-grid .lg_push_col_3{right:25%;}
  340.   .g-grid .lg_push_col_4{right:33.333333333333336%;}
  341.   .g-grid .lg_push_col_5{right:41.666666666666664%;}
  342.   .g-grid .lg_push_col_6{right:50%;}
  343.   .g-grid .lg_push_col_7{right:58.333333333333336%;}
  344.   .g-grid .lg_push_col_8{right:66.666666666666670%;}
  345.   .g-grid .lg_push_col_9{right:75%;}
  346.   .g-grid .lg_push_col_10{right:83.333333333333330%;}
  347.   .g-grid .lg_push_col_11{right:91.666666666666670%;}
  348.   .g-grid .lg_push_col_12{right:100%;}
  349. }
  350. /* unit.css */
  351. .u-hr,.u-hr2{display:block;margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee;}
  352. .u-hr2{margin-top:40px;margin-bottom:40px;}
  353. .u-dot{display:inline-block;height:1em;line-height:1;overflow:hidden;vertical-align:-.2em;}
  354. .u-dot::before{display:block;content: '...\A..\A.';white-space:pre-wrap;animation:dot 3s infinite step-start;}
  355. @keyframes dot{
  356.   33%{transform:translateY(-2em)}
  357.   66%{transform:translateY(-1em)}
  358. }
  359. /* 单行代码 */
  360. .u-code{display:block;padding:2px 4px;border-radius:4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:normal;word-wrap:break-word;/* 长单词换行,防止溢出 */}
  361. /* 多行代码 参考zhangxinxu */
  362. .u-code2{position:relative;display:block;line-height:1.3;padding:0 15px 0 40px;margin:10px 0;box-sizing:border-box;background:#e4f0f5;white-space:pre-wrap;}
  363. .u-code2::before{position:absolute;top:0;bottom:0;/* 配合top:0定义了此元素的高度,hidden才能生效 */left:0;overflow:hidden;padding-right:5px;border-right:3px solid #3f87a6;background:#fff;content:'01.\A 02.\A 03.\A 04.\A 05.\A 06.\A 07.\A 08.\A 09.\A 10.\A 11.\A 12.\A 13.\A 14.\A 15.\A 16.\A 17.\A 18.\A 19.\A 20.\A 21.\A 22.\A 23.\A 24.\A 25.\A 26.\A 27.\A 28.\A 29.\A 30.\A 31.\A 32.\A 33.\A 34.\A 35.\A 36.\A 37.\A 38.\A 39.\A 40.\A 41.\A 42.\A 43.\A 44.\A 45.\A 46.\A 47.\A 48.\A 49.\A 50.\A 51.\A 52.\A 53.\A 54.\A 55.\A 56.\A 57.\A 58.\A 59.\A 60.\A 61.\A 62.\A 63.\A 64.\A 65.\A 66.\A 67.\A 68.\A 69.\A 70.\A 71.\A 72.\A 73.\A 74.\A 75.\A 76.\A 77.\A 78.\A 79.\A 80.\A 81.\A 82.\A 83.\A 84.\A 85.\A 86.\A 87.\A 88.\A 89.\A 90.\A 91.\A 92.\A 93.\A 94.\A 95.\A 96.\A 97.\A 98.\A 99';/* \A 控制字符的换行 */}
  364. /* 例子 */
  365. .u-example{position:relative;display:block;padding:45px 15px 15px 15px;border:1px solid #ddd;border-radius:4px 4px 0 0;background-color:#fff;}
  366. .u-example::before{position:absolute;top:15px;left:15px;font-weight:700;color:#959595;content:'实例:';text-transform:uppercase;letter-spacing:1px;}
  367. /* 元素标签 em -> <em> */
  368. .u-eLabel::before{content:'<';}
  369. .u-eLabel::after{content:'>';}
  370. /* 超链接 */
  371. .u-link{color:#337ab7;}
  372. .u-link:hover,.u-link:focus{color:#23527c;text-decoration:underline;}
  373. /* 按钮 */
  374. /* 默认蓝色 */
  375. .u-btn{display:inline-block;height:28px;line-height:28px;padding:0 12px;border:transparent;/* 针对<button>标签。chrome中border-width默认是3px */background-color:#0078e7;cursor:pointer;/* 手机端没有用 */color:#fff;vertical-align:middle;letter-spacing:1px;/* 文字间距,中英文间距相同 */text-align:center;font-size:1.2rem;white-space:nowrap;user-select:none;}
  376. /* 提高页面的访问性,通过键盘聚焦和鼠标悬浮时效果保持一致 */
  377. .u-btn:hover,.u-btn:focus{background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));/* color:#fff; 覆盖a:hover的颜色; */}
  378. /* 三角形 特殊用法 */
  379. .u-btn .btnSel{display:inline-block;border:4px solid transparent;border-top-color:#fff;border-bottom-width:0;vertical-align:middle;}
  380. /* 颜色 */
  381. .u-btn-c1{background-color:#e6e6e6;color:rgba(0,0,0,.8);/* 灰色 */}
  382. /* 尺寸 */
  383. .u-btn-lg{height:36px;line-height:36px;padding:0 15px;font-size:1.8rem;}
  384. /* 组合按钮,默认带边框,直角 */
  385. .u-btns{position:relative;/* 用于.u-menu */display:inline-block;/* 清除浮动 */}
  386. .u-btns .u-btn{float:left;margin-left:-1px;/* 防止边框重叠 */border:1px solid #1b6d85;background-color:#269abc;/* 边框和背景色需要设计提供 */}
  387. .u-btns .u-btn:first-child{margin-left:0;/* 去除边框重叠副作用 */}
  388. .u-btns-br .u-btn:first-child{border-radius:5px 0 0 5px;}
  389. .u-btns-br .u-btn:last-child{border-radius:0 5px 5px 0;}
  390. /* 交互式菜单 */
  391. .u-menu{display:none;position:absolute;top:100%;left:0;box-sizing:border-box;/* 防止宽度超出父容器,例如.u-menu-max就离不开 */border:1px solid #d0d0d0;margin: 1px 0 0 0;border-radius:5px;word-spacing:normal;letter-spacing:normal;/* 正常的单词间距和字母间距 */background:#fff;box-shadow:0 5px 15px rgba(0,0,0,0.05);}
  392. .u-menu.z-show{display:block;}
  393. .u-menu li a{display:block;padding:6px 12px;border-top:1px solid #e8e8e8;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#333;}
  394. .u-menu li:first-child a{border:0;border-radius:5px 5px 0 0;/* 不能省,否则在hover下menu的圆角会有缺陷*/}
  395. .u-menu li:last-child a{border-radius:0 0 5px 5px;/* 不能省 */}
  396. .u-menu li a:hover{background:#f7f7f7;}
  397. /* 右对齐 */
  398. .u-menu-rt{left:auto;/* 宽度自动 */right:0;}
  399. /* 至少撑满 */
  400. .u-menu-min{min-width:100%;}
  401. /* 至多撑满 */
  402. .u-menu-max{max-width:100%;}
  403. /* 分组 */
  404. .u-menu-gp li:empty{border-top:1px solid #ddd;margin:5px 0;}
  405. .u-menu-gp li a{border:0;}
  406. /* ##字体 */
  407. .u-font{font-family: 'microsoft yahei',sans-serif;font-size:1.6rem;}
  408. .u-font-xs{font-size:1.2rem;}
  409. .u-font-sm{font-size:1.4rem;}
  410. .u-font-lg{font-size:2rem;}
  411. .u-font-xlg{font-size:2.4rem;}
  412. /* 标注(参考bootstrapV3) */
  413. .u-callout{display:block;padding:20px;margin:20px 0;border:1px solid #eee;border-left-color:#1b809e;border-left-width:5px;border-radius:3px;}
  414. .u-callout .tt{margin-top:0;margin-bottom:5px;font-size:1.8rem;font-weight:500;color:#1b809e;}
  415. .u-callout p{margin-bottom:16px;}
  416. .u-callout p:last-child{margin-bottom:0;}
  417. /* 标注类别 */
  418. .u-callout-danger{border-left-color:#ce4844;}
  419. .u-callout-danger .tt{color:#ce4844;}
  420. .u-callout-warn{border-left-color:#aa6708;}
  421. .u-callout-warn .tt{color:#aa6708;}
  422. /**
  423. * 标题(参考bootstrapV3)
  424. * 这里u-tt1~6 其实是对应h1~h6,但取名为tt1而不是h1,是希望不要被h1元素限制使用
  425. */
  426. .u-tt1{font-size:3.6rem;}
  427. .u-tt2{font-size:3.0rem;}
  428. .u-tt3{font-size:2.4rem;}
  429. .u-tt4{font-size:1.8rem;}
  430. .u-tt5{font-size:1.4rem;}
  431. .u-tt6{font-size:1.2rem;}
  432. .u-tt1,.u-tt2,.u-tt3{margin-top:20px;}
  433. .u-tt4,.u-tt5,.u-tt6{margin-top:10px;}
  434. .u-tt1,.u-tt2,.u-tt3,.u-tt4,.u-tt5,.u-tt6{display:block;margin-bottom:10px;font-weight:500;}
  435. .u-tt1 .sm,.u-tt2 .sm,.u-tt3 .sm{font-size:65%;}
  436. .u-tt4 .sm,.u-tt5 .sm,.u-tt6 .sm{font-size:75%;}
  437. .u-tt1 .sm,.u-tt2 .sm,.u-tt3 .sm,.u-tt4 .sm,.u-tt5 .sm,.u-tt6 .sm{font-weight:400;}
  438. /* header */
  439. .u-tt1-hd{padding-bottom:10px;margin:40px 0 20px 0;border-bottom:1px solid #eee;}
  440. /* 默认无边图片 110*110 */
  441. .u-img,.u-img2{position:relative;/* 可用于close按钮的定位 */display:inline-block;box-sizing:border-box;width:110px;height:110px;/* 场景:图片外总是有一个固定宽高的容器 */}
  442. .u-img img{display:block;/* 与下面紧邻元素没有间隙 */width:100%;height:100%}
  443. /* 有边图片 */
  444. .u-img-b1{padding:2px;border:1px solid #ddd;}
  445. /* 圆角 */
  446. .u-img-br,.u-img-br img{border-radius:5px;/* 不能省 */}
  447. /* 高度自适应 */
  448. .u-img-ha,.u-img-ha img{height:auto;}
  449. /* 自定义宽高 */
  450. .u-img-define,.u-img-define img{width:100%;height:100%}
  451. /* 自定义内容图片 */
  452. .u-img2{width:100%;height:auto;}
  453. /* 有边 */
  454. .u-img2-b1{border:1px solid #ddd;padding:4px;}
  455. /* 圆角 */
  456. .u-img2-br{border-radius:5px;}
  457. /* 图片高度自适应 */
  458. .u-img2 img{display:block;/* 与下面紧邻元素没有间隙 */width:100%;}
  459. /* 加号、减号*/
  460. .u-plus,.u-minus{position:relative;display:inline-block;width:16px;height:16px;background:#2096ff;}
  461. .u-plus::before,.u-plus::after,.u-minus::before{content:'';position:absolute;left:0;right:0;top:0;bottom:0;margin:43.75% 18.75%;/* 长度10,宽度2 */background:#fff;}
  462. .u-plus::after{transform:rotate(90deg);}
  463. /* module.css */
  464. /* 分成N等份,使用了N等份 */
  465. .m-bar{display:inline-block;width:100%;font-size:0;}
  466. .m-bar::before{content:'\3000'line-height:34px;vertical-align:2px;/* 垂直居中 */}
  467. .m-bar [class^=b]{display:inline-block;height:5px;background:#279f57 content-box;padding-right:4px;box-sizing:border-box;}
  468. .m-bar [class^=b]::last-child{padding-right:0;}
  469. .m-bar .z-used{background-color:#9f2727;}
  470. .m-bar .b1{width:100%;}
  471. .m-bar .b2{width:50%;}
  472. .m-bar .b3{width:33.333333333333336%;}
  473. .m-bar .b4{width:25%;}
  474. .m-bar .b5{width:20%;}
  475. .m-bar .b6{width:16.666666666666668%;}
  476. .m-bar .b7{width:14.285714285714286%;}
  477. .m-bar .b8{width:12.5%;}
  478. .m-bar .b9{width:11.11111111111111%;}
  479. .m-bar .b10{width:10%;}
  480. .m-bar .b11{width:9.090909090909092%;}
  481. .m-bar .b12{width:8.333333333333334%;}
  482. .m-bar .b13{width:7.6923076923076925%;}
  483. .m-bar .b14{width:7.142857142857143%;}
  484. .m-bar .b15{width:6.666666666666667%;}
  485. .m-bar .b16{width:6.25%;}
  486. /* 分成N等份,使用了N等份 */
  487. /* 图片垂直对齐文本 from css世界 */
  488. .m-imageAlignText{padding-left:20px;}
  489. .m-imageAlignText .icon{position: absolute;width:20px;margin-left:-20px;background:no-repeat center/20px;}
  490. .m-imageAlignText .icon::before{content:'\3000';/* 让行高生效 */}
  491. .m-imageAlignText .icon-del{background-image: url(../img/del.png);}
  492. .m-imageAlignText .icon-hot{background-image:url(../img/hot.gif);}
  493. /* /图片垂直对齐 */
  494. /* 多行式面包屑导航(默认竖线分隔) */
  495. .m-crumb{display:block;overflow:hidden;/* 溢出隐藏、清除浮动 */}
  496. .m-crumb ul{margin-left:-20px;}
  497. .m-crumb li{float:left;}
  498. .m-crumb li::before{display:inline-block;width:20px;content:'|';text-align:center;}
  499. /* 箭头分隔 */
  500. .m-crumb-arr li::before{content:'>';}
  501. /* 空格分隔 */
  502. .m-crumb-blank li::before{content:'';}
  503. /* 水平文字链接列表 */
  504. .m-list1{display:block;}
  505. .m-list1 li{float:left;margin-right:20px;}
  506. .m-list1 li:last-child{margin-right:0;}
  507. .m-list1::after{display:block;height:0;visibility:hidden;content:'.';clear:both;}
  508. .m-list1 a,.m-list1 a:hover{display:inline-block;/* a和li一样高 */}
  509. .m-list1-c1 a,.m-list1-c1 a:hover,.m-list2-c1 a,.m-list2-c1 a:hover{color:#3891eb;}
  510. /* 手机下一行一列 */
  511. @media screen and (max-width:667px){
  512.   .m-list1-xs li{box-sizing:border-box;width:100%;}
  513. }
  514. /* 一行一列带点列表 */
  515. .m-list2 li{padding-left:10px;}
  516. /* > 为了解决带点列表中内嵌不带点列表 */
  517. .m-list2 > li::before{display:inline-block;margin-left:-10px;margin-right:6px;border:2px solid;content:'';vertical-align:middle;margin-bottom:2px;/* 配合vertical-align让点居中 */}
  518. /* 圆点 */
  519. .m-list2-rds > li::before{border-radius:50%;}
  520. /* 简易数据表格,默认是格边框 */
  521. .m-table{width:100%;}
  522. .m-table caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left;}
  523. .m-table th{font-weight:bold;}
  524. .m-table td,.m-table th{padding:8px;border:1px solid #ddd;}
  525. /* 行边框 */
  526. .m-table-row th,.m-table-row td{border-width:0 0 1px 0;}
  527. /*
  528. * 状态类
  529. * .active 鼠标悬浮在行或单元格
  530. * .success 标识成功或积极的动作
  531. * .info 标识普通的提示信息或动作
  532. * .warn 标识警告或需要用户注意
  533. * .danger 标识危险或潜在带来负面影响
  534. */
  535. .m-table .z-active{background:#f5f5f5;}
  536. .m-table .z-success{background:#dff0d8;}
  537. .m-table .z-info{background:#d9edf7;}
  538. .m-table .z-warn{background:#fcf8e3;}
  539. .m-table .z-danger{background:#f2dede;}
  540. /**
  541. * 圆角
  542. * 过程如下:
  543. *  格边框
  544. *  表格边框分开(好像collapse与border-radius冲突),并在表格元素的右侧、底部各画一条边
  545. *  重置td、th边框,只画左边框、上边框
  546. *  把剩余三个角画圆
  547. */
  548. .m-table-rds{border-collapse:separate;border:1px solid #ddd;border-width:0 1px 1px 0;border-radius:5px;}
  549. .m-table-rds th,.m-table-rds td{border-width:1px 0 0 1px;}
  550. .m-table-rds > thead > :first-child > :first-child{border-top-left-radius:5px;}
  551. .m-table-rds > thead > :first-child > :last-child{border-top-right-radius:5px;}
  552. .m-table-rds > tbody > :last-child > :first-child{border-bottom-left-radius:5px;}
  553. /* skin.css */
  554. /* 情景文字颜色(参考bootstrapV3) */
  555. .s-textMuted{color:#777;/* 静音 */}
  556. .s-textSuccess{color:#3c763d;/* 成功 */}
  557. .s-textPrimary{color:#337ab7;/* 主要的 */}
  558. .s-textInfo{color:#31708f;/* 信息 */}
  559. .s-textWarn{color:#8a6d3b;/* 警告 */}
  560. .s-textDanger{color:#a94442;/* 危险 */}
  561. .s-tip{color:#ff9955;}
  562. /* 情景背景色 */
  563. .s-bgSuccess{background-color:#dff0d8;}
  564. .s-bgPrimary{background-color:#337ab7;color:#fff;}
  565. .s-bgInfo{background-color:#d9edf7;}
  566. .s-bgWarn{background-color:#fcf8e3;}
  567. .s-bgDanger{background-color:#f2dede;}
  568. /* function.css,权重相同,后者生效,所以放最后 */
  569. .f-fs12{font-size:1.2rem;}
  570. .f-fs14{font-size:1.4rem;}
  571. .f-fs16{font-size:1.6rem;}
  572. .f-fs18{font-size:1.8rem;}
  573. .f-fs20{font-size:2rem;}
  574. .f-fs22{font-size:2.2rem;}
  575. .f-fs24{font-size:2.4rem;}
  576. .f-fs30{font-size:3rem;}
  577. .f-fw100{font-weight:100;}
  578. .f-fw200{font-weight:200;}
  579. .f-fw300{font-weight:300;}
  580. .f-fw400{font-weight:400;}
  581. .f-fw600{font-weight:600;}
  582. .f-fw700{font-weight:700;}
  583. .f-fw800{font-weight:800;}
  584. .f-fw900{font-weight:900;}
  585. .f-fwb{font-weight:bold;}
  586. .f-fwn{font-weight:normal;}
  587. .f-ti2{text-indent:2em;/* 中文是两个,英文不是 */}
  588. .f-lhn{line-height:normal;}
  589. .f-lh150{line-height:150%;}
  590. .f-lh180{line-height:180%;}
  591. .f-lh200{line-height:200%;}
  592. /* 下划线 */
  593. .f-tdu,.f-tdu:hover{text-decoration:underline;/* 英文字母有的就没有下划线 */}
  594. /* 去除下划线 */
  595. .f-tdn,.f-tdn:hover{text-decoration:none;}
  596. .f-tdlt,.f-tdlt:hover{text-decoration:line-through;}
  597. /* 一行省略 */
  598. .f-toe{text-overflow:ellipsis;/* 必须配合white-space:nowrap;overflow:hidden; */overflow:hidden;white-space:nowrap;}
  599. /* 两行省略(暂放) */
  600. .f-toe2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  601. .f-oh{overflow:hidden;}
  602. /* 不换行 */
  603. .f-wsn{white-space:nowrap;}
  604. /* 转为pre */
  605. .f-pre{white-space:pre-wrap;/* 通常建议使用f-pre */}
  606. .f-pre2{white-space:pre;}
  607. /* 长单词换到下一行 */
  608. .f-wwbw{white-space:normal;word-wrap:break-word;}
  609. /* 任意位置换行 */
  610. .f-wbba{white-space:normal;/* 防止break-all与nowrap矛盾 */word-break:break-all;}
  611. /* 定位 */
  612. .f-tal{text-align:left;}
  613. .f-tac{text-align:center;}
  614. .f-tar{text-align:right;}
  615. .f-taj{text-align:justify;/* 两端对齐,不作用在最后一行 */}
  616. /* 块元素居中 */
  617. .f-bc{margin-left:auto;margin-right:auto;}
  618. .f-fl{float:left;}
  619. .f-fr{float:right;}
  620. /* 清除浮动 */
  621. .f-cb{clear:both;}
  622. .f-clearfix::after{display:block;content:'';clear:both;/* 来自《mdn》和《css世界》 */}
  623. .f-clearfix2::after{display:block;height:0;visibility:hidden;/* 仍会占据该位置 */content:'.';clear:both;/* 来自《精通CSS:高级Web标准解决方案》 */}
  624. .f-vam,.f-vama *{vertical-align:middle;/* 该属性可以继承 */}
  625. .f-pr{position:relative;}
  626. .f-pa{position:absolute;}
  627. .f-vh{visibility:hidden;/* 元素不可见,位置占着 */}
  628. .f-dn{display:none;/* 元素不可见,位置腾出来 */}
  629. .f-di{display:inline;}
  630. .f-db{display:block;}
  631. .f-dib{display:inline-block;}
  632. /* 长度高度 */
  633. .f-w10{width:10px;}
  634. .f-w100{width:100px;}
  635. .f-w200{width:200px;}
  636. .f-w250{width:250px;}
  637. .f-w300{width:300px;}
  638. .f-w500{width:500px;}
  639. .f-w100p{width:100%;}
  640. .f-h10{height:10px;}
  641. .f-h50{height:50px;}
  642. .f-h60{height:60px;}
  643. .f-h80{height:80px;}
  644. .f-h100{height:100px;}
  645. .f-h200{height:200px;}
  646. .f-h100p{height:100%;}
  647. /* 最大最小宽度和高度 */
  648. .f-mw500{max-width:500px;}
  649. .f-mw600{max-width:600px;}
  650. .f-mh300{max-height:300px;}
  651. /* 边距 */
  652. .f-m0{margin:0;}
  653. .f-m10{margin:10px;}
  654. .f-m15{margin:15px;}
  655. .f-m30{margin:30px;}
  656. .f-mt5{margin-top:5px;}
  657. .f-mt10{margin-top:10px;}
  658. .f-mt15{margin-top:15px;}
  659. .f-mt20{margin-top:20px;}
  660. .f-mt25{margin-top:25px;}
  661. .f-mt30{margin-top:30px;}
  662. .f-mt40{margin-top:40px;}
  663. .f-mt50{margin-top:50px;}
  664. .f-mt100{margin-top:100px;}
  665. .f-mb10{margin-bottom:10px;}
  666. .f-mb20{margin-bottom:20px;}
  667. .f-mb25{margin-bottom:25px;}
  668. .f-mb30{margin-bottom:30px;}
  669. .f-mb40{margin-bottom:40px;}
  670. .f-mb50{margin-bottom:50px;}
  671. .f-mb60{margin-bottom:60px;}
  672. .f-mb100{margin-bottom:100px;}
  673. .f-mb150{margin-bottom:150px;}
  674. .f-ml5{margin-left:5px;}
  675. .f-ml10{margin-left:10px;}
  676. .f-ml15{margin-left:15px;}
  677. .f-ml20{margin-left:20px;}
  678. .f-ml30{margin-left:30px;}
  679. .f-ml50{margin-left:50px;}
  680. .f-ml100{margin-left:100px;}
  681. .f-mr5{margin-right:5px;}
  682. .f-mr10{margin-right:10px;}
  683. .f-mr15{margin-right:15px;}
  684. .f-mr20{margin-right:20px;}
  685. .f-mr30{margin-right:30px;}
  686. .f-mr50{margin-right:50px;}
  687. .f-mr60{margin-right:60px;}
  688. .f-mr100{margin-right:100px;}
  689. .f-p0{padding:0px;}
  690. .f-p10{padding:10px;}
  691. .f-p15{padding:15px;}
  692. .f-p20{padding:20px;}
  693. .f-p30{padding:30px;}
  694. .f-pt10{padding-top:10px;}
  695. .f-pt15{padding-top:15px;}
  696. .f-pt20{padding-top:20px;}
  697. .f-pt30{padding-top:30px;}
  698. .f-pt50{padding-top:50px;}
  699. .f-pt100{padding-top:100px;}
  700. .f-pb10{padding-bottom:10px;}
  701. .f-pb15{padding-bottom:15px;}
  702. .f-pb20{padding-bottom:20px;}
  703. .f-pb30{padding-bottom:30px;}
  704. .f-pb50{padding-bottom:50px;}
  705. .f-pb60{padding-bottom:60px;}
  706. .f-pb100{padding-bottom:100px;}
  707. .f-pl10{padding-left:10px;}
  708. .f-pl15{padding-left:15px;}
  709. .f-pl20{padding-left:20px;}
  710. .f-pl30{padding-left:30px;}
  711. .f-pl50{padding-left:50px;}
  712. .f-pl100{padding-left:100px;}
  713. .f-pr10{padding-right:10px;}
  714. .f-pr15{padding-right:15px;}
  715. .f-pr20{padding-right:20px;}
  716. .f-pr30{padding-right:30px;}
  717. .f-pr50{padding-right:50px;}
  718. .f-pr60{padding-right:60px;}
  719. .f-pr100{padding-right:100px;}
  720. /* 鼠标 */
  721. .f-csp{cursor:pointer;}
  722. .f-csh{cursor:help;}
  723. .f-csm{cursor:move;}
  724. .f-csd{cursor:default;}
  725. /* 禁止选择文本 ie10+ */
  726. .f-usn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}
  727. /* 斜体 */
  728. .f-italic{font-style:italic;}
  729. /* 修改盒子模型 */
  730. .f-bsbb{box-sizing:border-box;}
  731. /* #skin.css */
  732. /* ##情景文字颜色 */
  733. /* 颜色参考bootstrapV3 辅助类 */
  734. .s-textMuted{color:#777;/* 静音 */}
  735. .s-textSuccess{color:#3c763d;/* 成功 */}
  736. .s-textPrimary{color:#337ab7;/* 主要的 */}
  737. .s-textInfo{color:#31708f;/* 信息 */}
  738. .s-textWarn{color:#8a6d3b;/* 警告 */}
  739. .s-textDanger{color:#a94442;/* 危险 */}
  740. /* ##情景背景色 */
  741. .s-bgSuccess{background-color:#dff0d8;}
  742. .s-bgPrimary{background-color:#337ab7;color:#fff;}
  743. .s-bgInfo{background-color:#d9edf7;}
  744. .s-bgWarn{background-color:#fcf8e3;}
  745. .s-bgDanger{background-color:#f2dede;}
  746. .s-tip{color:#ff9955;}   
复制代码
css-library.css 应用
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset='utf-8'>
  5. <title>css-library demo</title>
  6. <meta name='keywords' content=''>
  7. <meta name='description' content=''>
  8. <meta name='viewport' content='width=device-width,initial-scale=1.0'>
  9. <link rel='stylesheet' href='css-library.css'>
  10. </head>
  11. <body>
  12.   <h2>网格</h2>
  13.   
  14.     col_4
  15.     col_4
  16.     col_4
  17.   
  18.   
  19.     col_12 sm_col_3
  20.     col_12 sm_col_6
  21.     col_12 sm_col_3
  22.   
  23.   
  24.    
  25.       col_12 lg_col_8
  26.       
  27.         col_12 md_col_6
  28.         col_12 md_col_6
  29.       
  30.    
  31.     col_12 lg_col_4
  32.   
  33.   
  34.     <p ><i>Column clearing</i></p>
  35.    
  36.       col_3 xs_col_6 <br><br><br>
  37.       小屏幕下看看
  38.    
  39.     col_3 xs_col_6
  40.    
  41.     col_3 xs_col_6
  42.     col_3 xs_col_6
  43.   
  44.   
  45.     <p ><i>偏移2格</i></p>
  46.     col_5
  47.     col_5 offset_col_2
  48.   
  49.   
  50.     <p ><i>col_3和col_9调换</i></p>
  51.     col_3 md_pull_col_9
  52.     col_9 md_push_col_3
  53.   
  54.   <h2>元件</h2>
  55.   
  56.     <p><i>.u-hr</i></p>
  57.    
  58.   
  59.   
  60.     <p><i>.u-hr2</i>(上下间距更大)</p>
  61.    
  62.   
  63.   
  64.     <p><i>.u-code</i>(单行代码)</p>
  65.    
  66.     if(1){
  67.       xxx
  68.     }else{
  69.       长单词换行,不会溢出容器aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  70.     }
  71.    
  72.   
  73.   
  74.     <p><i>.u-code2</i>(多行代码)</p>
  75.    
  76. if(){
  77.   xxx
  78. }else{
  79.   aaa
  80. }
  81.    
  82.   
  83.   
  84.    
  85.       .u-example
  86.    
  87.   
  88.   
  89.     <p><i>.u-eLabel</i>(em -> <em>)</p>
  90.     em
  91.   
  92.   
  93.     <p><i>.u-link</i></p>
  94.     超链接
  95.   
  96.   
  97.     按钮 a.u-btn垂直居中
  98.   
  99.   
  100.     <button class='u-btn'>按钮 button.u-btn</button>
  101.   
  102.   
  103.     按钮 span.u-btn.u-btn-c1
  104.   
  105.   
  106.     <i ><i ></i></i>
  107.   
  108.   
  109.     按钮 span.u-btn.u-btn-lg <i ></i>
  110.   
  111.   
  112.    
  113.       按钮
  114.       按钮
  115.       按钮
  116.    
  117.     <p>inline-block清除浮动</p>
  118.   
  119.   
  120.    
  121.       按钮
  122.       按钮
  123.       按钮
  124.    
  125.   
  126.   
  127.   
  128.    
  129.       按钮组 .u-btns
  130.       按钮 .u-btn
  131.       按钮
  132.       <menu >
  133.         <li>默认左对齐 .u-menu</li>
  134.         <li>menu可以替换成ul</li>
  135.         <li>只对a元素进行了处理</li>
  136.       </menu>
  137.    
  138.   
  139.   
  140.    
  141.       按钮
  142.       按钮
  143.       按钮
  144.       <menu >
  145.         <li>右对齐</li>
  146.         <li>.u-menu-rt</li>
  147.       </menu>
  148.    
  149.   
  150.   
  151.    
  152.       按钮
  153.       按钮
  154.       按钮
  155.       <menu >
  156.         <li>至少撑满</li>
  157.         <li>至少撑满</li>
  158.       </menu>
  159.    
  160.   
  161.   
  162.    
  163.       按钮
  164.       按钮
  165.       按钮
  166.       <menu >
  167.         <li>最多撑满abcdabcdabcd</li>
  168.         <li>最多撑满</li>
  169.       </menu>
  170.    
  171.   
  172.   
  173.    
  174.       按钮
  175.       按钮
  176.       <menu >
  177.         <li>分组 .u-menu-gp</li>
  178.         <li>分组</li>
  179.         <li></li>
  180.         <li>分组</li>
  181.       </menu>
  182.    
  183.   
  184.   
  185.     <p >.u-font.u-font-xs 12px</p>
  186.   
  187.   
  188.     <p >.u-font.u-font-sm 14px</p>
  189.   
  190.   
  191.     <p class='u-font'>.u-font 16px</p>
  192.   
  193.   
  194.     <p >.u-font.u-font-lg 20px</p>
  195.   
  196.   
  197.     <p >.u-font.u-font-xlg 24px</p>
  198.   
  199.   
  200.    
  201.       标注标题 .tt
  202.       <p>.u-callout</p>
  203.       <p>忽略.......................................................</p>
  204.    
  205.   
  206.   
  207.    
  208.       <h2 >标注标题 h2.tt</h2>
  209.       <p>.u-callout-danger</p>
  210.       <p>标题下只能是p</p>
  211.    
  212.   
  213.   
  214.    
  215.       <h2 >标注标题 h2.tt</h2>
  216.       <p>.u-callout-warn</p>
  217.    
  218.   
  219.   <i ></i>
  220.   
  221.     标题 .u-tt6 1.2rem  —— 小标题 .sm(chrome限制,看不出来)
  222.     <p>忽略.............</p>
  223.   
  224.   
  225.     标题 .u-tt5 1.4rem  —— 小标题 .sm
  226.     <p>忽略.............</p>
  227.   
  228.   
  229.     标题 .u-tt4 1.8rem  —— 小标题 .sm
  230.     <p>忽略.............</p>
  231.   
  232.   
  233.     标题 .u-tt3 2.4rem  —— 小标题 .sm
  234.     <p>忽略.............</p>
  235.   
  236.   
  237.     标题 .u-tt2 3.0rem  —— 小标题 .sm
  238.     <p>忽略.............</p>
  239.   
  240.   
  241.     标题 .u-tt1 3.6rem  —— 小标题 .sm
  242.     <p>忽略.............</p>
  243.   
  244.   
  245.     标题 .u-tt1.u-tt1-hd
  246.     <p>忽略.............</p>
  247.   
  248.   
  249.     <p>
  250.       默认:无边直角定宽定高110*110 <br>
  251.       .u-img
  252.     </p>
  253.    
  254.       <img src="https://www.cnblogs.com/../https://www.cnblogs.com/../img/1.jpg" alt="">
  255.    
  256.   
  257.   
  258.     <p>
  259.       有边图片<br>
  260.       .u-img.u-img-b1
  261.     </p>
  262.    
  263.       <img src="https://www.cnblogs.com/../https://www.cnblogs.com/../img/1.jpg" alt="">
  264.    
  265.   
  266.   
  267.     <p>
  268.       有边圆角图片<br>
  269.       .u-img.u-img-b1.u-img-br
  270.     </p>
  271.    
  272.       <img src="https://www.cnblogs.com/../https://www.cnblogs.com/../img/1.jpg" alt="">
  273.    
  274.   
  275.   
  276.     <p>
  277.       高度自适应<br>
  278.       .u-img.u-img-ha
  279.     </p>
  280.    
  281.       <img src="https://www.cnblogs.com/../https://www.cnblogs.com/../img/1.jpg" alt="">
  282.    
  283.   
  284.   
  285.     <p>
  286.       自定义(填充父容器大小)<br>
  287.       .u-img.u-img-define
  288.     </p>
  289.    
  290.       
  291.         <img src="https://www.cnblogs.com/../https://www.cnblogs.com/../img/1.jpg" alt="">
  292.       
  293.    
  294.   
  295.   
  296.     <p>
  297.       .u-img2.u-img2-b1.u-img2-br
  298.     </p>
  299.    
  300.       <img src="https://www.cnblogs.com/../img/1.jpg" alt="">
  301.       标题
  302.       <p>省略...........................</p>
  303.       按钮
  304.    
  305.   
  306.   
  307.     <p>
  308.       <i class='icon icon-hot'></i>图片和文字水平对齐
  309.     </p>
  310.     <p class='m-imageAlignText f-fs30'>
  311.       <i class='icon icon-del'></i>
  312.       图片和文字水平对齐
  313.     </p>
  314.   
  315.   
  316.     <p>
  317.       请求已成功发出<i ></i>
  318.     </p>
  319.     <p class='u-font-lg'>
  320.       请求已成功发出<i ></i>
  321.     </p>
  322.   
  323.   
  324.     <p>
  325.       
  326.         <i ></i><i ></i><i ></i>
  327.         <i ></i><i ></i><i ></i>
  328.         <i ></i><i ></i>
  329.       
  330.     </p>
  331.     <p>
  332.       
  333.         <i ></i><i ></i><i ></i>
  334.       
  335.     </p>
  336.     <p>
  337.       
  338.         <i >
  339.       
  340.     </p>
  341.   
  342.   
  343.   <h2>肤色</h2>
  344.   
  345.     <p >静音 .s-textMuted</p>
  346.     <p >成功 .s-textSuccess</p>
  347.     <p >主要 .s-textPrimary</p>
  348.     <p >信息 .s-textInfo</p>
  349.     <p >警告 .s-textWarn</p>
  350.     <p >危险 .s-textDanger</p>
  351.     <p >提示 .s-tip</p>
  352.   
  353.   
  354.      <p >成功 .s-bgSuccess.f-p15</p>
  355.     <p >主要 .s-bgPrimary.f-p15</p>
  356.     <p >信息 .s-bgInfo.f-p15</p>
  357.     <p >警告 .s-bgWarn.f-p15</p>
  358.     <p >危险 .s-bgDanger.f-p15</p>
  359.   
  360.   <h2>模块</h2>
  361.   
  362.     <p>多行式面包屑导航</p>
  363.    
  364.       <ul>
  365.         <li>默认是竖线分隔</li>
  366.         <li>默认是竖线分隔</li>
  367.         <li>.m-crumb 内必须是ul,接着是li 换行换行换行换行换行换行换行换行换行换行换行换行换行换行换行换行换行换行(一项太长有缺陷)</li>
  368.         <li>默认是竖线分隔</li>
  369.         <li>默认是竖线分隔</li>
  370.       </ul>
  371.    
  372.    
  373.       <ul>
  374.         <li>箭头</li>
  375.         <li>箭头</li>
  376.         <li>.m-crumb-arr</li>
  377.       </ul>
  378.    
  379.    
  380.       <ul>
  381.         <li>空格</li>
  382.         <li>空格</li>
  383.         <li>.m-crumb-blank</li>
  384.       </ul>
  385.    
  386.   
  387.   
  388.     <p>简易文字链接列表,无需任何类,即可实现</p>
  389.     <ul>
  390.       <li>列表项文字 </li>
  391.       <li>a.u-link</li>
  392.       <li>列表项文字</li>
  393.       <li>列表项文字</li>
  394.     </ul>
  395.   
  396.   
  397.     <p>水平文字链接列表</p>
  398.     <ul >
  399.       <li>列表文字</li>
  400.       <li>.m-list1 .u-link</li>
  401.       <li>列表文字</li>
  402.       <li>列表文字</li>
  403.     </ul>
  404.     <ul >
  405.       <li>列表文字</li>
  406.       <li>换一种颜色</li>
  407.       <li>.m-list1-c1</li>
  408.       <li>列表文字</li>
  409.     </ul>
  410.     <ul >
  411.       <li>列表文字</li>
  412.       <li>手机下面(667px内)一行一列</li>
  413.       <li>.m-list1.m-list1-c1.m-list1-xs</li>
  414.       <li>文字大小继承ul</li>
  415.       <li>列表文字</li>
  416.     </ul>
  417.   
  418.   
  419.     <p>.m-list2.m-list2-c1</p>
  420.     <ul >
  421.       <li>关注点即可</li>
  422.       <li>关注点即可</li>
  423.       <li>关注点即可</li>
  424.     </ul>
  425.   
  426.   
  427.     <p>.m-list2.m-list2-c1.m-list2-rds</p>
  428.     <ul >
  429.       <li>关注点即可</li>
  430.       <li>关注点即可</li>
  431.       <li>关注点即可</li>
  432.     </ul>
  433.   
  434.   
  435.     <table >
  436.       <caption>格边框 .m-table</caption>
  437.       <thead>
  438.         <tr><th>格边框</th><th>表头</th><th>表头</th><th>表头</th><th >表头</th></tr>
  439.       </thead>
  440.       <tbody>
  441.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  442.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  443.       </tbody>
  444.     </table>
  445.   
  446.   
  447.     <table >
  448.       <caption>行边框 .m-table.m-table-row</caption>
  449.       <thead>
  450.         <tr><th>格边框</th><th>表头</th><th>表头</th><th>表头</th><th >表头</th></tr>
  451.       </thead>
  452.       <tbody>
  453.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  454.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  455.       </tbody>
  456.     </table>
  457.   
  458.   
  459.     <table >
  460.       <caption>圆角 .m-table.m-table-rds 必须有thead和tbody</caption>
  461.       <thead>
  462.           <tr><th>圆角</th><th>表头</th><th>表头</th><th>表头</th><th >表头</th></tr>
  463.       </thead>
  464.       <tbody>
  465.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  466.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  467.         <tr><td>内容</td><td>内容内容内容内容内容内容内容</td><td>内容内容</td><td>内容内容</td><td>内容内容内容</td></tr>
  468.       </tbody>
  469.     </table>
  470.   
  471.   
  472.     <table >
  473.       <caption>表格提供的状态类</caption>
  474.       <tbody>
  475.         <tr class='z-active'><td>.m-table .z-active</td><td>鼠标漂浮</td></tr>
  476.         <tr class='z-success'><td>.m-table .z-success</td><td>标识成功或积极的动作</td></tr>
  477.         <tr class='z-info'><td>.m-table .z-info</td><td>标识普通的提示或动作</td></tr>
  478.         <tr class='z-warn'><td>.m-table .z-warn</td><td>标识警告或用户注意</td></tr>
  479.         <tr class='z-danger'><td>.m-table .z-danger</td><td>表示危险或潜在带来的负面作用</td></tr>
  480.       </tbody>
  481.     </table>
  482.   
  483. </body>
  484. </html>
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
40.jpg
41.jpg
42.jpg
43.jpg
44.jpg
45.jpg
您需要登录后才可以回帖 登录 | 立即注册