目前在做移动小程序开发,效果必须和设计稿一模一样,一个像素都不能有差异。
虽然公司也提供了图生文
的工具,但是有时生成的代码可读性不太好,二次修改也比较费劲,这种情况还不如自己重写。
如果长期没有写样式,知识遗忘是正常的。
单个 css 语法问题查文档或者问 gpt 都很方便解决,重要的是要有 css 库的思路。
CSS Flexbox(弹性盒布局模型)在2009年首次提出,又称伸缩盒模型。
flexbox 提供一种简介而强大的方式来排列和对齐页面中的元素,以及定义元素视觉顺序。
Flex在移动端广泛使用。
弹性容器
,或者称开启flex布局,其孩子(只作用于第一代)自动变成弹性项目
Item 1
Item 2
Item 3
inline-flex 会和此文本在同一行
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
):
.container {
display: flex;
align-items: center;
border: 2px solid #000;
padding: 10px;
}
flex-direction: row
/row-reverse(侧轴对应的方向是:上到下
)。请看下图:
flex-direction:column
(上到下)/column-reverse
(侧轴对应的方向:左到右
)。请看下图:
主轴换行:flex-wrap: nowrap(默认)/wrap 换行/wrap-reverse 反向换行
主轴默认是不换行的。比如宽度800600的弹性容器,其中弹性项目宽度200200,放4个正好。在加一个,仍旧排在一行。这里体现了缩
(chrome工具有提示)
如果需要第5个换行,需要将 nowrap 改成 wrap 即可。
display: flex;
- flex-wrap: wrap;
主轴方向比较节省,大家挤一挤。侧轴方向就有点败家
(有多的就多花,没有多余的也不会挤一挤)。比如第5个换行后,发现下面还有400的高度,自己占200,没必要和第一行挤在一起,就放在下面400的中间,上下间距100。
第9个出现后,就和上铺的兄弟说,空间不够了,没必要浪费了,于是第二排(例如第5个)紧挨着第一排
第13个出现,则超出容器(600px高度)排列
wrap-reverse:反向换行。之前是从上到下换行,现在是从下到上换行。
Item 1
Item 2
Item 3
Item 4
Item 5
justify-content,中文“调整内容”。内容先放上去,然后在调整对齐方式。值有:
- flex-start(默认值)
- flex-start(主轴起点对齐,默认值)
- flex-end(主轴终点对齐。项目顺序不用变)
- center(居中)
space-between
(项目均匀分布,边缘项目紧贴容器。较常用)- space-around(项目均匀分布,边缘是非边缘间距的一半)
- space-evenly(项目均匀分布,边缘和非边缘间距相同)
注:如果太满(一行没有任何间隙),无论哪个属性,都看不出变化。第一行填满后再增加一项,假如换到了第二行,新加的这项的对齐方式就能看出来
居中对齐:justify-content: center
。请看下图:
主轴终点对齐:justify-content: flex-end
。请看下图:
注:别和换主轴方向(flex-direction: row-reverse)搞混
项目均匀分布,边缘是非边缘间距的一半:justify-content:space-around
。请看下图:
项目均匀分布,边缘项目紧贴容器:justify-content:space-between
。请看下图:
项目均匀分布,边缘和非边缘间距相同:justify-content: space-evenly
。请看下图:
注:如果太满,无论哪个属性,都看不出变化。例如这里的:justify-content: flex-end
Item 1
Item 2
Item 3
Tip:更多详情请看:[mdn justify-content][https://developer.mozilla.org/zh-CN/docs/Web/CSS/justify-content]
分单行和多行,每种情况用的属性不同。
单行用 align-items
,多行用 align-content
。
总结:
align-items:
- flex-start,侧轴起点对齐
- flex-end,侧轴终点对齐
- stretch,默认值。中文“拉伸”,如果弹性项目没有设置高度,将拉伸到容器高度
- baseline,第一行文字基线对齐。基本不用。
Item 1
Item 2
Item 3
侧轴默认对齐不是顶部:align-items: flex-start
,虽然上图表现的效果和 flex-start。这个稍后我们讲。
侧轴底部对齐:align-items: flex-end;
侧轴居中对齐:align-items: center
。效果如下:
侧轴基线对齐(几乎不用):align-items: baseline;
。请看下图:
align-items: stretch
是默认值,将伸缩项填充父容器高度。
只有伸缩项没有高度时才能拉伸。例如把高度去掉,效果就出来了。
Item 1
Item 2
Item 3
前面因为有高度,无法拉伸,所以效果和 align-items: flex-start
相同。
例如设置后两项的高度,align-items: stretch
效果如下图所示:
align-content
(和主轴对齐justify-content
的值相似)
- flex-start,侧轴起点对齐
- flex-end,侧轴终点对齐
- center,侧轴中点对齐
space-between
,项目均匀分布,边缘项目紧贴容器- space-around,项目均匀分布,边缘是非边缘间距的一半
- space-evenly,项目均匀分布,边缘和非边缘间距相同
- stretch,侧轴拉伸对齐。默认值。没有高度的时候生效。
准备环境:准备3行,弹性项目高度不一致。
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
Item 8
Item 9
每行以最高的弹性项目为准,侧轴对齐这里讲的就是如何分配多余的空间。前面我们说到侧轴不太会过日子,有点败家。这里我们研究如何败家。
侧轴起点对齐:align-content: flex-start
侧轴中点对齐:align-content: center
侧轴拉伸对齐:align-content: stretch
默认值。假如三行的高度都去掉,将会平分容器的高度
.item {
box-sizing: border-box;
background-color: lightblue;
width: 200px;
/* height: 150px; */
border: 1px solid #007BFF;
}
/* .fn-h1{ height: 200px;} */
/* .fn-h2{ height: 300px;} */
display: flex;
align-items: center;
justify-content: center;
完整代码:
Item
父元素 display: flex
,子元素 margin: auto
,也能实现方式1的效果。
flex-grow: 1。默认是 0,表示主轴方向存在多余空间,也不拉伸。
为了研究 flex-grow,先准备环境:
Item1
Item2
Item3
上图可以知道,默认是没有拉伸的。因为剩余300px。
我们给弹性项目增加 flex-grow: 1
,弹性盒子则会瓜分剩余空间。
每一个弹性项目都占1/3。
若3个伸缩项目flex-grow的值分别是 1、1、2,则分别瓜分 1/4、1/4、2/4。
flex-grow 默认是 0,即主轴存在剩余空间,也不拉伸。
flex-shrink,默认值是1。空间不够,会收缩。
注
:收缩的比例不同于拉伸
准备环境:弹性盒子宽度是700,但容器宽度只有400
Item1
Item2
Item3
容器有富裕的时候,大家按比例分,但是容器不富裕时,就不是这个规则。否则大家都应该减去100。但上图得知 item1 还有114.41,而不是100。item1 也不是200。
规则是这样:
item1 剩余计算规则
:
1. 缩小比例: 200/(200+200+300)
2. 缩小值:缩小比例 * 300
3. item1 剩余值:
200 - (200/700)*300 = 114.2857142857
但是浏览器是 114.41 和 114.285不一样,原因是浏览器的锅,由于弹性盒子的边框问题造成。
注释
掉弹性盒子的边框:
.item {
/* box-sizing: border-box; */
background-color: lightblue;
width: 200px;
height: 200px;
/* border: 1px solid #007BFF; */
}
这个值和 114.285
就非常接近了。
为什么缩的规则不能简单设置为大家均摊赔了多少钱?比如有的弹性项目本来就只有20,你要人家陪100,不合适。
Tip:缩的极限,即内容能呈现
flex是3个属性的复合属性,三值顺序必须是:flex-grow、flex-shrink、flex-basis
Item1
Item2
Item3
flex: 1 1 100px;
/* 等价 */
flex-grow: 1;
flex-shrink 1;
flex-basis: 100px;
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
/* 等于 */
flex: 1 1 0; /* 最常用。0表示没有宽度,按照 “伸” 来走 */
/* 等于 */
flex: 1;
flex 复合属性之所以感觉难,是因为它还有缩写。比如:
flex: auto;
/* 等价 */
flex: 1 1 auto;
flex: none
/* 等于 */
flex: 0 0 auto;
flex: 0 auto; /* flex 初始值 */
/* 等于 */
flex: 0 1 auto;
order,默认值是0,值越小,排列越靠前
flex-flow 是复合属性,不建议使用。复合了flex-direction 和 flex-wrap
flex-basis(使用较少) 设置主轴方向的基准长度,会让宽度(主轴是水平方向)或高度(主轴是垂直方向)失效
默认值是auto,即弹性盒子的宽度或高度。
浏览器用 flex-basis 计算主轴是否有富裕的空间。
下面示例会让宽度失效
Item1
Item2
Item3
更改主轴方向,则会让高度失效:
display: flex;
- flex-direction: column;
align-self
,单独调整弹性项目在侧轴的对齐方式。用的较少。
Tip:为什么只能调整侧轴对齐方式,因为主轴都是连在一起的,无法调。
单个css 语法不难,重要的是代码复用和可读性。以下是笔者参考网易NEC
的css规范写的一个 css 库。
可以将一些常用的 css 零碎的语法统一起来:
/*
目录
reset.css
grid.css
unit.css
module.css
skin.css
function.css
*/
/* reset.css */
/* 将常用的元素的margin和padding清空,方便布局;之所以不用*{margin:0;padding:0;},主要是性能问题,*{}会匹配很多废弃的元素 */
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;}
/* 将html5的标签改为块级元素,如果是移动端开发,可能是多余的(chrome 53测试默认都是block),以防万一吧 */
header,footer,section,article,aside,nav,hgroup,address,figure,figcaption,menu,details{display:block;}
/* 设置table的边框 */
table{border-collapse:collapse;border-spacing:0;}
/* 去除加粗,文本往左 */
caption,th{text-align:left;font-weight:normal;}
/* 去除fieldset、iframe边框 */
html,body,fieldset,img,iframe,abbr{border:0;}
/* 为了语义和设计的兼顾 */
legend{display:none;}
/* i、em、u、s等元素的默认样式保留挺好的 */
/* 去除下面元素的斜体 */
/* i,cite,em,var,address,dfn{font-style:normal;} */
/* 点击summary时有outline,不要 */
[hidefocus],summary{outline:0;}
/* 去除列表样式 */
li{list-style:none;}
/* 去除默认字体大小,继承父类即可,不喜欢normalize.css保留了字体大小 */
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
/* small{font-size:100%;} */
/* 设定sup、sub字体大小为父类的83% */
sup,sub{font-size:83%;}
/* chrome中pre是monospace字体,这里将以下元素字体设置为继承,否则即使设置body的字体,pre的字体还是monospace */
pre,code,kbd,samp{font-family:inherit;}
/* 去除" */
/* q:before,q:after{content:none;} */
/* 不让textarea调整尺寸 */
textarea{resize:none;}
/* 将手势改为default,chrome中summary的手势为auto */
label,summary{cursor:default;}
/* 修改为手 */
a,button{cursor:pointer;}
/* 将em、strong、b加粗 */
/* em,strong,b{font-weight:bold;} */
/* 去除del和s的删除线;去除ins和u的下划线;去除a下划线;*/
a,a:hover{text-decoration:none;}
/* del,ins,u,s{text-decoration:none;} */
/* 1rem=10px */
html{font-size:62.5%;}
/* 设置通用字体;有的字体不能继承,例如chrome中body 16px,即使设置body字体为12px,textarea,input,button,select,keygen仍然还是13.333333px;去除textaret、input、select的outline;*/
body,textarea,input,button,select,keygen,legend{font:14px/1.5 sans-serif,arial,5b8b4f53;color:#333;outline:0;/* 若使用rem代替px,p、span等标签在ie10以下文字大小将继承html,而chrome,firefox没问题 */}
/* 将背景ragb(0,0,0,0)改为白色 */
body{background:#fff;}
/* 参考bootstrapV3 */
p{margin-bottom:10px;}
/* 注释下面内容,否则给按钮字体颜色增加很多工作量,不就是chrome点击a字体变红色,没关系 */
/* a,a:hover{color:#333;} */
/* grid.css,网格系统 */
/* 网格容器 */
.g-grid{box-sizing:border-box;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;}
.g-grid-w1{width:86%;}
/* 手机和平板是86%;PC和大屏下是960px */
.g-grid-w960{width:960px;}
/* 清除浮动 */
.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;}
/* Column clearing,配合媒体查询 */
.g-grid .clearfix_xs,.g-grid .clearfix_sm,.g-grid .clearfix_md,.g-grid .clearfix_lg{display:none;}
/* 行的设置 */
.g-grid .row{box-sizing:border-box;margin-left:-15px;margin-right:-15px;margin-bottom:20px;}
.g-grid .row .row{margin-top:10px;margin-bottom:0;}
/* 列的设置 */
.g-grid [class*="col_"]{position:relative;float:left;box-sizing:border-box;padding:15px;}
.g-grid .col_1{width:8.333333333333334%;}
.g-grid .col_2{width:16.666666666666668%;}
.g-grid .col_3{width:25%;}
.g-grid .col_4{width:33.333333333333336%;}
.g-grid .col_5{width:41.666666666666664%;}
.g-grid .col_6{width:50%;}
.g-grid .col_7{width:58.333333333333336%;}
.g-grid .col_8{width:66.666666666666670%;}
.g-grid .col_9{width:75%;}
.g-grid .col_10{width:83.333333333333330%;}
.g-grid .col_11{width:91.666666666666670%;}
.g-grid .col_12{width:100%;}
/* 偏移 */
.g-grid .offset_col_1{margin-left:8.333333333333334%;}
.g-grid .offset_col_2{margin-left:16.666666666666668%;}
.g-grid .offset_col_3{margin-left:25%;}
.g-grid .offset_col_4{margin-left:33.333333333333336%;}
.g-grid .offset_col_5{margin-left:41.666666666666664%;}
.g-grid .offset_col_6{margin-left:50%;}
.g-grid .offset_col_7{margin-left:58.333333333333336%;}
.g-grid .offset_col_8{margin-left:66.666666666666670%;}
.g-grid .offset_col_9{margin-left:75%;}
.g-grid .offset_col_10{margin-left:83.333333333333330%;}
.g-grid .offset_col_11{margin-left:91.666666666666670%;}
.g-grid .offset_col_12{margin-left:100%;}
/* pull */
.g-grid .pull_col_1{left:8.333333333333334%;}
.g-grid .pull_col_2{left:16.666666666666668%;}
.g-grid .pull_col_3{left:25%;}
.g-grid .pull_col_4{left:33.333333333333336%;}
.g-grid .pull_col_5{left:41.666666666666664%;}
.g-grid .pull_col_6{left:50%;}
.g-grid .pull_col_7{left:58.333333333333336%;}
.g-grid .pull_col_8{left:66.666666666666670%;}
.g-grid .pull_col_9{left:75%;}
.g-grid .pull_col_10{left:83.333333333333330%;}
.g-grid .pull_col_11{left:91.666666666666670%;}
.g-grid .pull_col_12{left:100%;}
/* push */
.g-grid .push_col_1{right:8.333333333333334%;}
.g-grid .push_col_2{right:16.666666666666668%;}
.g-grid .push_col_3{right:25%;}
.g-grid .push_col_4{right:33.333333333333336%;}
.g-grid .push_col_5{right:41.666666666666664%;}
.g-grid .push_col_6{right:50%;}
.g-grid .push_col_7{right:58.333333333333336%;}
.g-grid .push_col_8{right:66.666666666666670%;}
.g-grid .push_col_9{right:75%;}
.g-grid .push_col_10{right:83.333333333333330%;}
.g-grid .push_col_11{right:91.666666666666670%;}
.g-grid .push_col_12{right:100%;}
/* 手机 */
@media screen and (max-width:667px){
/* 定制宽度 */
.g-grid-w2{width:100%;}
.g-grid .clearfix_xs{display:block;}
.g-grid .xs_col_1{width:8.333333333333334%;}
.g-grid .xs_col_2{width:16.666666666666668%;}
.g-grid .xs_col_3{width:25%;}
.g-grid .xs_col_4{width:33.333333333333336%;}
.g-grid .xs_col_5{width:41.666666666666664%;}
.g-grid .xs_col_6{width:50%;}
.g-grid .xs_col_7{width:58.333333333333336%;}
.g-grid .xs_col_8{width:66.666666666666670%;}
.g-grid .xs_col_9{width:75%;}
.g-grid .xs_col_10{width:83.333333333333330%;}
.g-grid .xs_col_11{width:91.666666666666670%;}
.g-grid .xs_col_12{width:100%;}
/* 偏移 */
.g-grid .xs_offset_col_1{margin-left:8.333333333333334%;}
.g-grid .xs_offset_col_2{margin-left:16.666666666666668%;}
.g-grid .xs_offset_col_3{margin-left:25%;}
.g-grid .xs_offset_col_4{margin-left:33.333333333333336%;}
.g-grid .xs_offset_col_5{margin-left:41.666666666666664%;}
.g-grid .xs_offset_col_6{margin-left:50%;}
.g-grid .xs_offset_col_7{margin-left:58.333333333333336%;}
.g-grid .xs_offset_col_8{margin-left:66.666666666666670%;}
.g-grid .xs_offset_col_9{margin-left:75%;}
.g-grid .xs_offset_col_10{margin-left:83.333333333333330%;}
.g-grid .xs_offset_col_11{margin-left:91.666666666666670%;}
.g-grid .xs_offset_col_12{margin-left:100%;}
/* pull */
.g-grid .xs_pull_col_1{left:8.333333333333334%;}
.g-grid .xs_pull_col_2{left:16.666666666666668%;}
.g-grid .xs_pull_col_3{left:25%;}
.g-grid .xs_pull_col_4{left:33.333333333333336%;}
.g-grid .xs_pull_col_5{left:41.666666666666664%;}
.g-grid .xs_pull_col_6{left:50%;}
.g-grid .xs_pull_col_7{left:58.333333333333336%;}
.g-grid .xs_pull_col_8{left:66.666666666666670%;}
.g-grid .xs_pull_col_9{left:75%;}
.g-grid .xs_pull_col_10{left:83.333333333333330%;}
.g-grid .xs_pull_col_11{left:91.666666666666670%;}
.g-grid .xs_pull_col_12{left:100%;}
/* push */
.g-grid .xs_push_col_1{right:8.333333333333334%;}
.g-grid .xs_push_col_2{right:16.666666666666668%;}
.g-grid .xs_push_col_3{right:25%;}
.g-grid .xs_push_col_4{right:33.333333333333336%;}
.g-grid .xs_push_col_5{right:41.666666666666664%;}
.g-grid .xs_push_col_6{right:50%;}
.g-grid .xs_push_col_7{right:58.333333333333336%;}
.g-grid .xs_push_col_8{right:66.666666666666670%;}
.g-grid .xs_push_col_9{right:75%;}
.g-grid .xs_push_col_10{right:83.333333333333330%;}
.g-grid .xs_push_col_11{right:91.666666666666670%;}
.g-grid .xs_push_col_12{right:100%;}
}
/* 平板 */
@media screen and (min-width:668px){
.g-grid .clearfix_sm{display:block;}
.g-grid .sm_col_1{width:8.333333333333334%;}
.g-grid .sm_col_2{width:16.666666666666668%;}
.g-grid .sm_col_3{width:25%;}
.g-grid .sm_col_4{width:33.333333333333336%;}
.g-grid .sm_col_5{width:41.666666666666664%;}
.g-grid .sm_col_6{width:50%;}
.g-grid .sm_col_7{width:58.333333333333336%;}
.g-grid .sm_col_8{width:66.666666666666670%;}
.g-grid .sm_col_9{width:75%;}
.g-grid .sm_col_10{width:83.333333333333330%;}
.g-grid .sm_col_11{width:91.666666666666670%;}
.g-grid .sm_col_12{width:100%;}
/* 偏移 */
.g-grid .sm_offset_col_1{margin-left:8.333333333333334%;}
.g-grid .sm_offset_col_2{margin-left:16.666666666666668%;}
.g-grid .sm_offset_col_3{margin-left:25%;}
.g-grid .sm_offset_col_4{margin-left:33.333333333333336%;}
.g-grid .sm_offset_col_5{margin-left:41.666666666666664%;}
.g-grid .sm_offset_col_6{margin-left:50%;}
.g-grid .sm_offset_col_7{margin-left:58.333333333333336%;}
.g-grid .sm_offset_col_8{margin-left:66.666666666666670%;}
.g-grid .sm_offset_col_9{margin-left:75%;}
.g-grid .sm_offset_col_10{margin-left:83.333333333333330%;}
.g-grid .sm_offset_col_11{margin-left:91.666666666666670%;}
.g-grid .sm_offset_col_12{margin-left:100%;}
/* pull */
.g-grid .sm_pull_col_1{left:8.333333333333334%;}
.g-grid .sm_pull_col_2{left:16.666666666666668%;}
.g-grid .sm_pull_col_3{left:25%;}
.g-grid .sm_pull_col_4{left:33.333333333333336%;}
.g-grid .sm_pull_col_5{left:41.666666666666664%;}
.g-grid .sm_pull_col_6{left:50%;}
.g-grid .sm_pull_col_7{left:58.333333333333336%;}
.g-grid .sm_pull_col_8{left:66.666666666666670%;}
.g-grid .sm_pull_col_9{left:75%;}
.g-grid .sm_pull_col_10{left:83.333333333333330%;}
.g-grid .sm_pull_col_11{left:91.666666666666670%;}
.g-grid .sm_pull_col_12{left:100%;}
/* push */
.g-grid .sm_push_col_1{right:8.333333333333334%;}
.g-grid .sm_push_col_2{right:16.666666666666668%;}
.g-grid .sm_push_col_3{right:25%;}
.g-grid .sm_push_col_4{right:33.333333333333336%;}
.g-grid .sm_push_col_5{right:41.666666666666664%;}
.g-grid .sm_push_col_6{right:50%;}
.g-grid .sm_push_col_7{right:58.333333333333336%;}
.g-grid .sm_push_col_8{right:66.666666666666670%;}
.g-grid .sm_push_col_9{right:75%;}
.g-grid .sm_push_col_10{right:83.333333333333330%;}
.g-grid .sm_push_col_11{right:91.666666666666670%;}
.g-grid .sm_push_col_12{right:100%;}
}
/* PC */
@media screen and (min-width:960px){
.g-grid .clearfix_md{display:block;}
.g-grid .md_col_1{width:8.333333333333334%;}
.g-grid .md_col_2{width:16.666666666666668%;}
.g-grid .md_col_3{width:25%;}
.g-grid .md_col_4{width:33.333333333333336%;}
.g-grid .md_col_5{width:41.666666666666664%;}
.g-grid .md_col_6{width:50%;}
.g-grid .md_col_7{width:58.333333333333336%;}
.g-grid .md_col_8{width:66.666666666666670%;}
.g-grid .md_col_9{width:75%;}
.g-grid .md_col_10{width:83.333333333333330%;}
.g-grid .md_col_11{width:91.666666666666670%;}
.g-grid .md_col_12{width:100%;}
/* 偏移 */
.g-grid .md_offset_col_1{margin-left:8.333333333333334%;}
.g-grid .md_offset_col_2{margin-left:16.666666666666668%;}
.g-grid .md_offset_col_3{margin-left:25%;}
.g-grid .md_offset_col_4{margin-left:33.333333333333336%;}
.g-grid .md_offset_col_5{margin-left:41.666666666666664%;}
.g-grid .md_offset_col_6{margin-left:50%;}
.g-grid .md_offset_col_7{margin-left:58.333333333333336%;}
.g-grid .md_offset_col_8{margin-left:66.666666666666670%;}
.g-grid .md_offset_col_9{margin-left:75%;}
.g-grid .md_offset_col_10{margin-left:83.333333333333330%;}
.g-grid .md_offset_col_11{margin-left:91.666666666666670%;}
.g-grid .md_offset_col_12{margin-left:100%;}
/* pull */
.g-grid .md_pull_col_1{left:8.333333333333334%;}
.g-grid .md_pull_col_2{left:16.666666666666668%;}
.g-grid .md_pull_col_3{left:25%;}
.g-grid .md_pull_col_4{left:33.333333333333336%;}
.g-grid .md_pull_col_5{left:41.666666666666664%;}
.g-grid .md_pull_col_6{left:50%;}
.g-grid .md_pull_col_7{left:58.333333333333336%;}
.g-grid .md_pull_col_8{left:66.666666666666670%;}
.g-grid .md_pull_col_9{left:75%;}
.g-grid .md_pull_col_10{left:83.333333333333330%;}
.g-grid .md_pull_col_11{left:91.666666666666670%;}
.g-grid .md_pull_col_12{left:100%;}
/* push */
.g-grid .md_push_col_1{right:8.333333333333334%;}
.g-grid .md_push_col_2{right:16.666666666666668%;}
.g-grid .md_push_col_3{right:25%;}
.g-grid .md_push_col_4{right:33.333333333333336%;}
.g-grid .md_push_col_5{right:41.666666666666664%;}
.g-grid .md_push_col_6{right:50%;}
.g-grid .md_push_col_7{right:58.333333333333336%;}
.g-grid .md_push_col_8{right:66.666666666666670%;}
.g-grid .md_push_col_9{right:75%;}
.g-grid .md_push_col_10{right:83.333333333333330%;}
.g-grid .md_push_col_11{right:91.666666666666670%;}
.g-grid .md_push_col_12{right:100%;}
}
/* 大屏 */
@media screen and (min-width:1024px){
/* 定制宽度 */
.g-grid-w2{width:960px;}
.g-grid .clearfix_lg{display:block;}
.g-grid .lg_col_1{width:8.333333333333334%;}
.g-grid .lg_col_2{width:16.666666666666668%;}
.g-grid .lg_col_3{width:25%;}
.g-grid .lg_col_4{width:33.333333333333336%;}
.g-grid .lg_col_5{width:41.666666666666664%;}
.g-grid .lg_col_6{width:50%;}
.g-grid .lg_col_7{width:58.333333333333336%;}
.g-grid .lg_col_8{width:66.666666666666670%;}
.g-grid .lg_col_9{width:75%;}
.g-grid .lg_col_10{width:83.333333333333330%;}
.g-grid .lg_col_11{width:91.666666666666670%;}
.g-grid .lg_col_12{width:100%;}
/* 偏移 */
.g-grid .lg_offset_col_1{margin-left:8.333333333333334%;}
.g-grid .lg_offset_col_2{margin-left:16.666666666666668%;}
.g-grid .lg_offset_col_3{margin-left:25%;}
.g-grid .lg_offset_col_4{margin-left:33.333333333333336%;}
.g-grid .lg_offset_col_5{margin-left:41.666666666666664%;}
.g-grid .lg_offset_col_6{margin-left:50%;}
.g-grid .lg_offset_col_7{margin-left:58.333333333333336%;}
.g-grid .lg_offset_col_8{margin-left:66.666666666666670%;}
.g-grid .lg_offset_col_9{margin-left:75%;}
.g-grid .lg_offset_col_10{margin-left:83.333333333333330%;}
.g-grid .lg_offset_col_11{margin-left:91.666666666666670%;}
.g-grid .lg_offset_col_12{margin-left:100%;}
/* pull */
.g-grid .lg_pull_col_1{left:8.333333333333334%;}
.g-grid .lg_pull_col_2{left:16.666666666666668%;}
.g-grid .lg_pull_col_3{left:25%;}
.g-grid .lg_pull_col_4{left:33.333333333333336%;}
.g-grid .lg_pull_col_5{left:41.666666666666664%;}
.g-grid .lg_pull_col_6{left:50%;}
.g-grid .lg_pull_col_7{left:58.333333333333336%;}
.g-grid .lg_pull_col_8{left:66.666666666666670%;}
.g-grid .lg_pull_col_9{left:75%;}
.g-grid .lg_pull_col_10{left:83.333333333333330%;}
.g-grid .lg_pull_col_11{left:91.666666666666670%;}
.g-grid .lg_pull_col_12{left:100%;}
/* push */
.g-grid .lg_push_col_1{right:8.333333333333334%;}
.g-grid .lg_push_col_2{right:16.666666666666668%;}
.g-grid .lg_push_col_3{right:25%;}
.g-grid .lg_push_col_4{right:33.333333333333336%;}
.g-grid .lg_push_col_5{right:41.666666666666664%;}
.g-grid .lg_push_col_6{right:50%;}
.g-grid .lg_push_col_7{right:58.333333333333336%;}
.g-grid .lg_push_col_8{right:66.666666666666670%;}
.g-grid .lg_push_col_9{right:75%;}
.g-grid .lg_push_col_10{right:83.333333333333330%;}
.g-grid .lg_push_col_11{right:91.666666666666670%;}
.g-grid .lg_push_col_12{right:100%;}
}
/* unit.css */
.u-hr,.u-hr2{display:block;margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee;}
.u-hr2{margin-top:40px;margin-bottom:40px;}
.u-dot{display:inline-block;height:1em;line-height:1;overflow:hidden;vertical-align:-.2em;}
.u-dot::before{display:block;content: '...A..A.';white-space:pre-wrap;animation:dot 3s infinite step-start;}
@keyframes dot{
33%{transform:translateY(-2em)}
66%{transform:translateY(-1em)}
}
/* 单行代码 */
.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;/* 长单词换行,防止溢出 */}
/* 多行代码 参考zhangxinxu */
.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;}
.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 控制字符的换行 */}
/* 例子 */
.u-example{position:relative;display:block;padding:45px 15px 15px 15px;border:1px solid #ddd;border-radius:4px 4px 0 0;background-color:#fff;}
.u-example::before{position:absolute;top:15px;left:15px;font-weight:700;color:#959595;content:'实例:';text-transform:uppercase;letter-spacing:1px;}
/* 元素标签 em -> */
.u-eLabel::before{content:'';}
/* 超链接 */
.u-link{color:#337ab7;}
.u-link:hover,.u-link:focus{color:#23527c;text-decoration:underline;}
/* 按钮 */
/* 默认蓝色 */
.u-btn{display:inline-block;height:28px;line-height:28px;padding:0 12px;border:transparent;/* 针对
css-library demo
网格
col_4
col_4
col_4
col_12 sm_col_3
col_12 sm_col_6
col_12 sm_col_3
col_12 lg_col_8
col_12 md_col_6
col_12 md_col_6
col_12 lg_col_4
Column clearing
col_3 xs_col_6
小屏幕下看看
col_3 xs_col_6
col_3 xs_col_6
col_3 xs_col_6
偏移2格
col_5
col_5 offset_col_2
col_3和col_9调换
col_3 md_pull_col_9
col_9 md_push_col_3
元件
.u-hr
.u-hr2(上下间距更大)
.u-code(单行代码)
if(1){
xxx
}else{
长单词换行,不会溢出容器aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
}
.u-code2(多行代码)
if(){
xxx
}else{
aaa
}
.u-example
.u-eLabel(em -> <em>)
em
.u-link
超链接
按钮 a.u-btn垂直居中
按钮 span.u-btn.u-btn-c1
按钮 span.u-btn.u-btn-lg
按钮
按钮
按钮
inline-block清除浮动
按钮
按钮
按钮
按钮组 .u-btns
按钮 .u-btn
按钮
按钮
按钮
按钮
按钮
按钮
按钮
按钮
按钮
按钮
按钮
按钮
.u-font.u-font-xs 12px
.u-font.u-font-sm 14px
.u-font 16px
.u-font.u-font-lg 20px
.u-font.u-font-xlg 24px
标注标题 .tt
.u-callout
忽略.......................................................
标注标题 h2.tt
.u-callout-danger
标题下只能是p
标注标题 h2.tt
.u-callout-warn
标题 .u-tt6 1.2rem —— 小标题 .sm(chrome限制,看不出来)
忽略.............
标题 .u-tt5 1.4rem —— 小标题 .sm
忽略.............
标题 .u-tt4 1.8rem —— 小标题 .sm
忽略.............
标题 .u-tt3 2.4rem —— 小标题 .sm
忽略.............
标题 .u-tt2 3.0rem —— 小标题 .sm
忽略.............
标题 .u-tt1 3.6rem —— 小标题 .sm
忽略.............
标题 .u-tt1.u-tt1-hd
忽略.............
图片和文字水平对齐
图片和文字水平对齐
请求已成功发出
请求已成功发出
肤色
静音 .s-textMuted
成功 .s-textSuccess
主要 .s-textPrimary
信息 .s-textInfo
警告 .s-textWarn
危险 .s-textDanger
提示 .s-tip
成功 .s-bgSuccess.f-p15
主要 .s-bgPrimary.f-p15
信息 .s-bgInfo.f-p15
警告 .s-bgWarn.f-p15
危险 .s-bgDanger.f-p15
模块
多行式面包屑导航
水平文字链接列表
格边框 .m-table
格边框 表头 表头 表头 表头
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
行边框 .m-table.m-table-row
格边框 表头 表头 表头 表头
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
圆角 .m-table.m-table-rds 必须有thead和tbody
圆角 表头 表头 表头 表头
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
内容 内容内容内容内容内容内容内容 内容内容 内容内容 内容内容内容
表格提供的状态类
.m-table .z-active 鼠标漂浮
.m-table .z-success 标识成功或积极的动作
.m-table .z-info 标识普通的提示或动作
.m-table .z-warn 标识警告或用户注意
.m-table .z-danger 表示危险或潜在带来的负面作用
出处:https://www.cnblogs.com/pengjiali/p/18718039
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
参与评论
手机查看
返回顶部