pure.css更加简易的Bootstrap框架,定制度更高.比Tailwind轻量. 诸如此类的简单css框架能帮助我们快速搭建页面. 这里仿照它们写一个自己的css框架,涉及布局,自定义大小,颜色等
中文官方文档开始使用 - Pure | Pure中文站 | Purecss学习网
官网有最新版Get Started - Pure (purecss.io)
注意,下面代码需要使用sass
处理
normalize
首先,需要一些css用于使得不同浏览器表现一致.1
2
3
4
5
6
7
8
9
10
11
12:root {
box-sizing: border-box;
font-size: 62.5%;
}
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: inherit;
}
此外也可以引入Normalize.css: Make browsers render all elements more consistently. (necolas.github.io)
排版
众所周知,我们需要Grid,这里Grid并不是指css中的display:grid
,而是更加简单的每行多个block元素.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25.pro-col {
max-width: $grid-width;
@include clearfix;
& [class^="pro-col-"] {
display: float;
&:not(:last-child) {
margin-right: $horizontal-gap;
}
}
&-1-2 {
width: calc((100% - #{$gutter-horizontal}) / 2);
}
&-1-3 {
width: calc((100% - 2 *#{$gutter-horizontal}) / 3);
}
&-2-3 {
width: calc((100% - #{$gutter-horizontal}) / 3 * 2);
}
&-1-4 {
width: calc((100% - 3 *#{$gutter-horizontal}) / 4);
}
&-3-4 {
width: calc((100% - #{$gutter-horizontal}) / 4 * 3);
}
}
目前css支持更加先进的CSS Flexbox Layout Guide | CSS-Tricks与CSS Grid Layout Guide | CSS-Tricks
组件
可以实现自己的一些组件,这些组件不受页面限制
Buttons
1 | .btn { |
自定义变量
1 | // TEXT COLOR |
还可以设置一些mixin,类似函数.1
2
3
4
5
6
7@mixin clearfix {
&::after {
content: "";
clear: both;
display: table;
}
}
还可以设置一些工具/原子类1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30.u-margin-bottom-small {
margin-bottom: 1.5rem;
}
.u-margin-bottom-medium {
margin-bottom: 3rem;
}
.u-margin-bottom-big {
margin-bottom: 5rem;
}
.u-margin-boottom-huge {
margin-bottom: 7rem;
}
.u-margin-top-small {
margin-top: 1.5rem;
}
.u-margin-top-medium {
margin-top: 3rem;
}
.u-margin-top-big {
margin-top: 5rem;
}
.u-margin-top-huge {
margin-top: 7rem;
}
hidden {
display: none ;
}
还需要什么
首先,为了响应式
使用max-width
优于width
,使用%
,rem
与em
优于px
. 针对屏幕大小使用media query
其次,考虑原子式或尽可能提供更多现有组件
事实上上面两者并不冲突,但是为了简单,可以考虑尽可能向一个方向考虑.
使得整个格式保持一致
预设的风格需要尽可能保持一致. 比如如果页面整体风格是灰白的,button风格也要保持一致
首先,CSS框架必须包含页面布局,比如网格系统。如今,网格系统在网页设计中非常重要。您的网格系统应该是灵活的和可定制的。
其次,CSS框架必须包含很多组件。对于您的框架来说,只有网格系统是不够的。它还应该包括一些组件,如警报、按钮等。此外,它们应该是可定制的。
最后,CSS框架应该最小化。你知道网页的大小会影响加载时间。因此,如果CSS文件的大小大于300-400KB,那么这里就有问题了
相关资料
- Considerations For Making A CSS Framework | CSS-Tricks
- How to Make your own CSS Framework - Part 1 | Arvind Ram Sankar (arvindrs.com)
- The Process of Building a CSS Framework | Codrops (tympanus.net)
- Build It Yourself : Building your own CSS framework | by Furkan Zerman | Stingy Developer | Medium
- Create a CSS design system from scratch. No framework, just CSS (terluinwebdesign.nl)